Я работаю с WPF Popup.Всплывающее окно содержит некоторую клавиатуру.Я хочу открыть всплывающее окно, когда пользователь нажимает на текстовое поле, и не скрывать всплывающее окно, когда текстовое поле имеет фокус.Также мне нужно скрыть всплывающее окно, когда пользователь щелкает где-то далеко от всплывающего окна.Вот код xaml:
<Grid>
<StackPanel>
<TextBox x:Name="textBox" GotKeyboardFocus="textBox_GotFocus" MouseDown="textBox_MouseDown" />
<Popup x:Name="popup" Width="100" Height="100" PlacementTarget="{Binding ElementName=textBox}" Placement="Bottom"
StaysOpen="{Binding ElementName=text,Path=IsKeyboardFocused}">
<Grid Background="Blue">
</Grid>
</Popup>
</StackPanel>
</Grid>
Вот код c #:
private void textBox_GotFocus(object sender, KeyboardFocusChangedEventArgs e)
{
popup.IsOpen = true;
}
private void textBox_MouseDown(object sender, MouseButtonEventArgs e)
{
popup.IsOpen = true;
}
Я обнаружил, что привязка может помочь:
StaysOpen="{Binding ElementName=,Path=IsKeyboardFocused}"
Но TextBox никогда не прячется,Также, если я установлю StaysOpen = "False", TextBox никогда не будет отображаться