我试图在文本框获得键盘焦点时打开弹出窗口。当用户点击弹出窗口时,我希望弹出窗口关闭。
我可以收集的内容StaysOpen="False"
会在用户点击它时关闭弹出窗口。问题是它不能与IsKeyboardFocused = true
数据触发器一起工作,导致弹出窗口根本不显示。如果我删除StaysOpen
属性,弹出窗口会显示,但会在点击时关闭(即使我没有指定已关闭事件的代码)。
Here is what it looks like without the StaysOpen
property.
这是我的代码。非常感谢任何帮助!
<TextBox x:Name="SearchTextBox"
Height="26"
Width="165"
TextWrapping="Wrap"
Text="Example">
</TextBox>
<Popup
Placement="Bottom"
PlacementTarget="{Binding ElementName=SearchTextBox}"
Height="200"
Width="100"
StaysOpen="False"> <!-- If StaysOpen property is removed, popup displays!!! -->
<Popup.Style>
<Style TargetType="{x:Type Popup}">
<Setter Property="IsOpen" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=SearchTextBox, Path=IsKeyboardFocused}"
Value="true">
<Setter Property="IsOpen" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Popup.Style>
</Popup>