Wpf 为什么在“IsKeyboardFocusWithin”上触发不';当值为false时,是否不工作?
我想更改Wpf 为什么在“IsKeyboardFocusWithin”上触发不';当值为false时,是否不工作?,wpf,triggers,eventtrigger,Wpf,Triggers,Eventtrigger,我想更改Textbox.GotFocus和Textbox.LostFocus上的输入语言,因此我执行以下操作: <Style TargetType="{x:Type TextBox}" x:Key="EnglishTextStyle"> <Style.Triggers> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter Prope
Textbox.GotFocus
和Textbox.LostFocus
上的输入语言,因此我执行以下操作:
<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>
它将输入语言更改为
en-us
,但不会将其返回到fa-ir
,有什么问题吗?您还需要指定类型:
<Trigger Property="TextBox.IsKeyboardFocusWithin" Value="False">
<Setter Property="TextBox.InputLanguageManager.InputLanguage" Value="fa-ir" />
</Trigger>
此代码有效。尝试更改Property=“Text”而不是InputLanguageManager.InputLanguage,并且您必须确保使用其他控件。此外,您还可以评估“IsFocused”。