解决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了。

 

你可能感兴趣的:(window)