LostFocus не стреляет
Застрял немного и мог бы помочь. Для достижения: всякий раз, когда вы щелкаете за пределами StackPanel - Visibilty должен измениться на Hidden.
Довольно просто, я написал следующее условие:
private void pnlLeftMenu_LostFocus(object sender, RoutedEventArgs e)
{
if (pnlLeftMenu.IsFocused == false)
{
pnlLeftMenu.Visibility = Visibility.Hidden;
}
}
Где pnlLeftMenu - панель, которая должна срабатывать. Вот кусок xaml с описанными свойствами:
<StackPanel x:Name="pnlLeftMenu"
Orientation="Vertical"
Height="475"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Margin="57,0,0,0"
Visibility="Hidden"
Background="{StaticResource BlueFadedBrush}"
IsVisibleChanged="pnlLeftMenu_IsVisibleChanged"
Focusable="True"
LostFocus="pnlLeftMenu_LostFocus" >
Не беспокойтесь о том, что он уже скрыт - это боковое меню, которое становится видимым при нажатии кнопки. Эта часть отлично работает.
Вопрос в том, чего мне не хватает? Причина, когда это выглядит так - щелчок за пределами панели не дает никакой реакции.
1 ответ
Решение
Вы можете добавить событие клика в родительский контейнер панели стека и внутри обработчика события клика попробуйте как
if (pnlLeftMenu.IsVisible)
{
pnlLeftMenu.Visibility = Visibility.Hidden;
}