天天看點

解決WPF中重載Window.OnRender函數失效問題

原文: 解決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了。

繼續閱讀