在wpf中扩展样式

时间:2013-06-11 06:35:53

标签: c# .net wpf xaml tooltip

如果validationresult为true,我尝试以下方式扩展样式并添加工具提示消息。但它显示错误“属性样式设置不止一次”。如何扩展此案例的样式。任何帮助将不胜感激。感谢。

<TextBox Width="500" Style="{StaticResource HasInvalidValue}">
                <TextBox.Text>
                    <Binding Path="Text" UpdateSourceTrigger="PropertyChanged">
                        <Binding.ValidationRules>
                            <Validator:PathFormatValidationRule/>
                        </Binding.ValidationRules>
                    </Binding>
                </TextBox.Text>
                <TextBox.Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource HasInvalidValue}">
                    <Style>
                        <Setter Property="ToolTip" Value="Enter Text."/>
                    </Style>
                </TextBox.Style>
            </TextBox>

风格定义为:

<Style x:Key="HasInvalidValue" TargetType="{x:Type TextBox}">
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="true">
            <Setter Property="Background" Value="White"/>
            <Setter Property="ToolTip"
          Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                          Path=(Validation.Errors)[0].ErrorContent}"/>
        </Trigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:2)

首先在

中设置
<TextBox Style="{StaticResource HasInvalidValue}" ...
...
</TextBox>

然后

<TextBox.Style ...
</TextBox.Style>

从文本框元素中删除样式属性。