(對不起我的英語不好)OnRender性能問題
我的工作是 - 在Panel中畫線。
爲此,我重寫了Panel的OnRender方法,並放置了下面的代碼。
/// <summary>
/// 라인의 두께
/// </summary>
private const double LINE_THICKNESS = 0.5d;
/// <summary>
/// 가로줄의 간격
/// </summary>
private const double GAP_PER_WIDTHLINE = 30d;
/// <summary>
/// 세로줄의 간격
/// </summary>
private const double GAP_PER_HEIGHTLINE = 12d;
int lineCount = 0;
for (double x = GAP_PER_WIDTHLINE; x < this.ActualHeight; x += GAP_PER_WIDTHLINE)
{
lineCount++;
if (lineCount % 5 == 0)
{
dc.DrawLine(solidPen, new Point(0, x), new Point(this.ActualWidth, x));
lineCount = 0;
}
else
dc.DrawLine(dotPen, new Point(0, x), new Point(this.ActualWidth, x));
}
//# 세로줄
lineCount = 0;
for (double y = GAP_PER_HEIGHTLINE; y < this.ActualWidth; y += GAP_PER_HEIGHTLINE)
{
lineCount++;
if (lineCount % 5 == 0)
{
dc.DrawLine(solidPen, new Point(y, 0), new Point(y, this.ActualHeight));
lineCount = 0;
}
else
dc.DrawLine(dotPen, new Point(y, 0), new Point(y, this.ActualHeight));
}
現在,你知道我的工作是什麼。
上面的代碼給我正確的操作,除了低性能。
確實很慢....
什麼是錯?我怎樣才能讓它更快?
嗯..你的答案不能解決。它正確地在WinForm框架中工作,但不在WPF中。 WPF使用不同的圖形佈局系統。 – illef 2010-09-20 00:56:54
噢,對不起!上述提供了一些關於你的表現繪圖的想法! – 2010-09-21 01:41:51