0

到目前为止,我使用<Style.Triggers>andDataTrigger是为了根据条件将不同的样式属性应用于项目(在本例中为 TextBox)。

但现在我想根据条件DataTriggerStyle属性设置为我在别处定义的静态资源。

如果我使用 TextBox.Triggers 我得到一个错误,我不能在其中使用 DataTriggers 只是 EventTriggers 这不是我想要的。

我应该如何处理?

4

1 回答 1

0

至少对于我的情况,似乎已经通过样式继承找到了合适的解决方案。如果我这样定义样式

在下面的代码ReadOnlyTextBox中是我默认拥有的样式,并且基于我重写的我的一个属性上的 Datatrigger InEditMode- 撤消它的一些默认样式属性,例如<Setter Property="IsReadOnly" Value="True" />在默认ReadOnlyTextBox样式中设置的

<TextBox.Style>
    <Style BasedOn="{StaticResource ReadOnlyTextBox}" TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding InEditMode}" Value="True">
                <Setter Property="IsReadOnly" Value="False" />
                <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="Focusable" Value="True"/>
                <Setter Property="IsReadOnlyCaretVisible" Value="True"/>
                <Setter Property="KeyboardNavigation.IsTabStop" Value="True"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>
于 2013-01-29T12:58:59.403 回答