如何为所有控件定义默认工具提示样式

时间:2010-12-01 04:43:31

标签: wpf xaml styles

我想在有验证错误时使用模板定义样式,并将第一条错误消息显示为工具提示。

在以下xaml中定位特定控件(如DatePicker)时,它可以正常工作。

<Style TargetType="{x:Type ToolKit:DatePicker}">
    <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>

我无法让它为Control工作,即以下内容不提供任何工具提示

<Style TargetType="{x:Type ToolKit:Control}">
    <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>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我建议你为这个创建一个Behavior

每个控件本身都是唯一的,这不是将特定行为附加到所有控件的可靠方法。事实上,您最终可能会在不需要验证的不需要的控件上设置此属性。

Behaviors很干净,您只能将它们分配给选定的控件。可以使用Attached PropertiesMaster BehaviorBehaviors分配给子控件。

这是一个CodeProject article from Josh Smith,可以帮助您开始使用Behaviors