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