Я хочу открыть всплывающее окно, когда фокус находится на текстовом поле Here, код, который я написал:
<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>
private void Button_Click(object sender, RoutedEventArgs e)
{
popup.IsOpen = true;
}
private void text_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
popup.IsOpen = true;
}
Если я Нажимаю на кнопку, все хорошо работает, Если я Нажимаю на текстовое поле открытое всплывающее окно и близко
Если я удаляю StaysOpen = "Ложь", всплывающее окно открывается, но никогда близко
Я пытаюсь установить внимание на всплывающее окно прежде, чем открыть его, но это не работает также
У Вас есть какая-либо идея?
Большое спасибо, Nidal.
Добавьте следующую привязку к вашему объявлению Popup:
StaysOpen="{Binding ElementName=text,Path=IsKeyboardFocused}"
Это должно помочь.