Wpf 在代码中编辑Validation.ErrorTemplate
我有一个包含文本框的UserControl。Text属性是数据绑定和验证的。发生Validation.Error时,我想编辑Validation.ErrorTemplate。具体来说,我想用一条多段线来装饰它Wpf 在代码中编辑Validation.ErrorTemplate,wpf,validation,user-controls,Wpf,Validation,User Controls,我有一个包含文本框的UserControl。Text属性是数据绑定和验证的。发生Validation.Error时,我想编辑Validation.ErrorTemplate。具体来说,我想用一条多段线来装饰它 最终目标是使UserControl在验证失败时在文本下有一条红色的曲线。我可能完全弄错了,b/c这太难了。你只需要在文本框上设置ErrorTemplate。当文本框上的某个绑定验证失败时,ErrorTemplate将显示在装饰器层中。您可以通过以下操作绘制一条曲线: <Validat
最终目标是使UserControl在验证失败时在文本下有一条红色的曲线。我可能完全弄错了,b/c这太难了。你只需要在文本框上设置ErrorTemplate。当文本框上的某个绑定验证失败时,ErrorTemplate将显示在装饰器层中。您可以通过以下操作绘制一条曲线:
<Validation.ErrorTemplate>
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder/>
<Rectangle Height="7">
<Rectangle.Fill>
<DrawingBrush
TileMode="Tile"
ViewportUnits="Absolute"
Viewport="0 0 4 7"
ViewboxUnits="Absolute"
Viewbox="0 0 4 7"
>
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Pen>
<Pen Brush="Red" Thickness="1"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<PathGeometry Figures="M0,2 L2,5 4,2, 6,5" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>
</StackPanel>
</ControlTemplate>
</Validation.ErrorTemplate>
如果您希望行只延伸到文本框中的文本,您的策略是什么?我可以通过编程计算,但如何将其放入标记中?可以在文本框上创建一个包含文本位置的附加属性,然后将下划线位置绑定到该属性。