今天实验一个绘图算法的时候,偶然发现重载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了。