LostFocus 不开火
LostFocus not firing
有点卡住了,需要一些帮助。
要实现:每当单击 StackPanel 外部时 - 它的可见性应更改为隐藏。
很简单,我写了下一个条件:
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" >
不用担心,它已经被隐藏了——它是一个侧边菜单,点击按钮就可以看到。那部分工作正常。
所以问题是:我错过了什么?因为当它看起来像这样时——面板外的点击没有任何反应。
你能不能在堆栈面板的父容器中添加一个点击事件,并在点击事件处理程序中尝试
if (pnlLeftMenu.IsVisible)
{
pnlLeftMenu.Visibility = Visibility.Hidden;
}
有点卡住了,需要一些帮助。 要实现:每当单击 StackPanel 外部时 - 它的可见性应更改为隐藏。
很简单,我写了下一个条件:
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" >
不用担心,它已经被隐藏了——它是一个侧边菜单,点击按钮就可以看到。那部分工作正常。
所以问题是:我错过了什么?因为当它看起来像这样时——面板外的点击没有任何反应。
你能不能在堆栈面板的父容器中添加一个点击事件,并在点击事件处理程序中尝试
if (pnlLeftMenu.IsVisible)
{
pnlLeftMenu.Visibility = Visibility.Hidden;
}