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;
    }
Другие вопросы по тегам