Nid*_*lot 11 c# wpf wpf-controls
当焦点在文本框上时,我想打开一个弹出窗口这是我写的代码:
<Window x:Class="Testpopup.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<TextBox x:Name="text" GotKeyboardFocus="text_GotKeyboardFocus" />
<Button Click="Button_Click" Content="but"/>
<Popup x:Name="popup" Width="100" Height="100" PlacementTarget="{Binding ElementName=text}"
StaysOpen="False">
<Grid>
<StackPanel>
<DatePicker />
<TextBox />
</StackPanel>
</Grid>
</Popup>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
private void Button_Click(object sender, RoutedEventArgs e)
{
popup.IsOpen = true;
}
private void text_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
popup.IsOpen = true;
}
Run Code Online (Sandbox Code Playgroud)
如果我单击按钮一切正常如果我单击文本框弹出打开和关闭
如果我删除StaysOpen ="False"弹出窗口打开但从不关闭
我尝试在打开它之前将重点放在弹出窗口上,但它也不起作用
你有什么主意吗 ?
非常感谢,Nidal.
HCL*_*HCL 16
将以下绑定添加到Popup声明:
StaysOpen="{Binding ElementName=text,Path=IsKeyboardFocused}"
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题.