LostFocus没有开火

时间:2016-07-13 01:00:11

标签: c# wpf 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 个答案:

答案 0 :(得分:1)

是否可以将click事件添加到堆栈面板的父容器中,并在click事件处理程序内部尝试

   if (pnlLeftMenu.IsVisible)
    {
        pnlLeftMenu.Visibility = Visibility.Hidden;
    }