结合不同的风格触发器(如&&)?

时间:2012-07-15 16:12:26

标签: c# wpf xaml

我尝试更改文本框的行为,以便在有人将鼠标悬停在其上时更改其边框。与此同时,如果有人输入文本框,我希望我的文本框保持绿色边框。 我首先尝试将鼠标悬停在物品上并创建了这段代码:

<Style TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <Trigger Property="TextBox.IsMouseOver" Value="True">
                <Setter Property="BorderBrush" Value="Green"/>
                <Setter Property="BorderThickness" Value="2"/>
            </Trigger>
            <Trigger Property="TextBox.IsMouseOver" Value="False">
                <Setter Property="BorderBrush" Value="Black"/>
                <Setter Property="BorderThickness" Value="1"/>
            </Trigger>
        </Style.Triggers>
    </Style>

问题来自为IsKeyboardFocused事件添加触发器。如果我添加这两个额外的触发器,除了将鼠标悬停在部件上外,一切正常。所以如果我将鼠标悬停在它上面,我的文本框将不会出现绿色边框。

无论如何要解决这个问题或结合两个触发器,如If IsMouseOver==true && IsKeyboardFocused == false then borderbrush = green

提前致谢!

1 个答案:

答案 0 :(得分:3)

MultiTrigger触发逻辑与条件组合。但是,没有逻辑OR MultiTrigger