解決WPF中過載Window.OnRender函式失效問題

傑克.陳發表於2018-11-07
原文:解決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了。

 


相關文章