为什么触发`IsKeyboardFocusWithin`在值为false时不起作用?

时间:2012-12-08 12:22:12

标签: wpf triggers eventtrigger

我想更改Textbox.GotFocusTextbox.LostFocus上的InputLanguage,所以我这样做:

<Style TargetType="{x:Type TextBox}" x:Key="EnglishTextStyle">
    <Style.Triggers>
        <Trigger Property="IsKeyboardFocusWithin" Value="True">
            <Setter Property="InputLanguageManager.InputLanguage" Value="en-us" />
        </Trigger>
        <Trigger Property="IsKeyboardFocusWithin" Value="False">
            <Setter Property="InputLanguageManager.InputLanguage" Value="fa-ir" />
        </Trigger>
    </Style.Triggers>
</Style>

它将InputLanguage变为en-us,但不会将其返回fa-ir,这有什么问题?

1 个答案:

答案 0 :(得分:1)

您还需要指定类型:

<Trigger Property="TextBox.IsKeyboardFocusWithin" Value="False">
     <Setter Property="TextBox.InputLanguageManager.InputLanguage" Value="fa-ir" />
</Trigger>