【发布时间】:2011-09-14 10:11:32
【问题描述】:
我想使用 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));
}
对了,为什么大家都用“base.OnRender(drawingContext);”在他们的 OnRender() 方法中?它对我没有任何改变。
我不能使用 TextDecoration,因为即使没有文本也必须绘制下划线。
编辑:
可能不是一个漂亮的解决方案,但似乎没有更好的方法: OnRender() 方法绘制背景,然后绘制线条。 TextBox Background 属性设置为 null,因此不会再次绘制背景。
【问题讨论】: