我想使用OnRender方法在文本框中画下划线,但是线条会被画在文本框后面。由于文本框不透明,因此下划线不可见。我应该如何在文本框上方绘制内容?
protected override void OnRender(DrawingContext dc){
dc.DrawLine(new Pen(new LinearGradientBrush(Colors.Green, Colors.Blue, 0.0d), 2), new Point(0, Height - 4), new Point(Width, Height - 4));
}
顺便问一下,为什么每个人在他们的OnRender()方法中使用“base.OnRender(drawingContext);”?这对我没有任何改变。
我不能使用TextDecoration,因为即使没有文本也必须绘制下划线。
编辑:
可能不是一个很好的解决方案,但似乎没有更好的方法: OnRender()方法先绘制背景,然后绘制线条。TextBox的Background属性设置为null,这样就不会再次绘制背景了。