原文: 解決WPF中重載Window.OnRender函數失效問題 今天實驗一個繪圖算法的時候,偶然發現重載Window.OnRender的方法是沒有效果的。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
protected override void OnRender(DrawingContext dc)
{
dc.DrawEllipse(Brushes.Orange, null, new Point(), 80, 80);
}
}
在網上搜了一下,解決方案倒也比較簡單,将背景設定為透明即可。
this.Background = Brushes.Transparent;
由于之前一直是繼承UIElement來重載的,它沒有Background屬性。便重載了其它控件的OnRender方法試了下,也是沒有這個問題的,MSDN上也沒有找到要這麼設定的說明,看來這個是可以算是一個不算嚴重的bug了。