有哪些我試圖轉換爲WPF Windows窗體應用程序,但是當我在主窗口覆蓋onPaintBackground使用wpf中的OnPaintBackground的替代方法。
protected override void OnPaintBackground(PaintEventArgs pevent)
有錯誤
發現覆蓋
沒有合適的方法
那麼wpf中onPaintBackground的替代方案是什麼?
有哪些我試圖轉換爲WPF Windows窗體應用程序,但是當我在主窗口覆蓋onPaintBackground使用wpf中的OnPaintBackground的替代方法。
protected override void OnPaintBackground(PaintEventArgs pevent)
有錯誤
發現覆蓋
沒有合適的方法
那麼wpf中onPaintBackground的替代方案是什麼?
一般來說,你不應該在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);
}
你真的不想使用WPF可以這樣做。有很好的理由來覆蓋OnRender,但作爲替代繪畫的背景不是其中之一。 WPF是保留模式圖形系統,WinForms是直接模式。你會想在這裏上的差異念起來:
http://msdn.microsoft.com/en-us/library/ff684178%28v=vs.85%29.aspx
而使用的WinForms,如果你想動畫控制你首先需要明確的區域,它是以前呈現以避免文物,與WPF您只需設置您想要的屬性的動畫效果,並讓系統處理使像素無效。
+1:一般來說你不需要。但有時有用,尤其是如果你需要一些數學來定位一切。 – 2012-05-21 17:50:09