我想要取代Validation.ErrorTemplate的正常行为。我想把一个背景边框对象(用红色填充)放在我自己的UserControl后面,然后应用一个简单的颜色动画来闪烁它。
我在隐式控制风格中尝试了这一点:
<Style TargetType="{x:Type local:myControl}">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Border Name="ErrorBorder" CornerRadius"5" Background="Red">
<AdornedElementPlaceholder />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>不幸的是,边框对象完全覆盖了控件UI。另一个问题是:将DoubleAnimation应用于不透明以使我的背景闪烁的正确位置在哪里?我应该触发哪些属性/事件?我应该使用样式还是简单地将其放在Border.Triggers中?
谢谢
发布于 2014-01-20 19:52:04
我很确定这是不可能的,装饰器总是绘制在装饰元素的顶部。
参见MSDN上的主持人概述
Adorner是绑定到UIElement的自定义UIElement。Adorner在AdornerLayer中呈现,它是一个始终位于装饰元素或装饰元素集合之上的呈现面
您可能会使用一个普通的边框来装饰这个元素,而不是试图把它放在装饰元素后面,这样就可以得到同样的效果。
https://stackoverflow.com/questions/19873102
复制相似问题