我的视图中有一个StackPanel(菜单),当用户单击应用程序栏中的按钮时,显示此控件
我希望LostFocus
StackPanel
它已关闭,但它不起作用,您没有事件触发器
XAML
<StackPanel x:Name="StackMenu" Background="{StaticResource PhoneAccentBrush}"
Orientation="Vertical"
Visibility="{Binding StackPanel_IsVisible, Mode=TwoWay,
Converter={StaticResource BooleanToVisibilityConverter}}"
LostFocus="StackMenu_LostFocus">
</StackPanel>
C#
private void StackPanel_LostFocus(object sender, RoutedEventArgs e)
{
}
答案 0 :(得分:3)
只有当(此情况下的StackPanel)之外的其他控件获得焦点时,才会引发LostFocus事件。
在视图中,您有StackPanel
和一些TextBlock
控件
在这种情况下,由于LostFocus
无法获得焦点,因此不会引发TextBlock
事件
在视图中,您有StackPanel
和一些TextBox
控件或其他输入启用的控件。
在这种情况下,只要其中一个控件获得LostFocus
,就会引发Focus
事件。
如果您没有TextBox
个控件,则可以通过在Tap
的容器上捕获StackPanel
事件来解决此问题:
Tap
事件且位置也位于StackPanel
区域时,StackPanel
将捕获该事件,并且不会将其传播到容器。 StackPanel
之外时,它只会在容器或容器中的其他控件上显示(这是 StackPanel
丢失{{1 }} 强>)。