2012-05-21 57 views
2

有哪些我試圖轉換爲WPF Windows窗體應用程序,但是當我在主窗口覆蓋onPaintBackground使用wpf中的OnPaintBackground的替代方法。

protected override void OnPaintBackground(PaintEventArgs pevent) 

有錯誤

發現覆蓋

沒有合適的方法

那麼wpf中onPaintBackground的替代方案是什麼?

回答

2

一般來說,你不應該在WPF中「繪製」。因爲連續重新創建對象(鋼筆,畫筆,形狀)可能會非常緩慢。

您可以在此頁面覆蓋OnRender方法,例如:

protected override void OnRender(DrawingContext dc) 
{ 
    SolidColorBrush mySolidColorBrush = new SolidColorBrush(); 
    mySolidColorBrush.Color = Colors.LimeGreen; 
    Pen myPen = new Pen(Brushes.Blue, 10); 
    Rect myRect = new Rect(0, 0, 500, 500); 
    dc.DrawRectangle(mySolidColorBrush, myPen, myRect); 
} 
+0

+1:一般來說你不需要。但有時有用,尤其是如果你需要一些數學來定位一切。 – 2012-05-21 17:50:09

2

你真的不想使用WPF可以這樣做。有很好的理由來覆蓋OnRender,但作爲替代繪畫的背景不是其中之一。 WPF是保留模式圖形系統,WinForms是直接模式。你會想在這裏上的差異念起來:

http://msdn.microsoft.com/en-us/library/ff684178%28v=vs.85%29.aspx

而使用的WinForms,如果你想動畫控制你首先需要明確的區域,它是以前呈現以避免文物,與WPF您只需設置您想要的屬性的動畫效果,並讓系統處理使像素無效。

相關問題