StackPanel LostFocus事件不起作用

时间:2014-05-08 15:54:46

标签: windows-phone-7 windows-phone-8 stackpanel

我的视图中有一个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)
{

}

1 个答案:

答案 0 :(得分:3)

只有当(此情况下的StackPanel)之外的其他控件获得焦点时,才会引发LostFocus事件。

实施例

  1. 在视图中,您有StackPanel和一些TextBlock控件 在这种情况下,由于LostFocus无法获得焦点,因此不会引发TextBlock事件

  2. 在视图中,您有StackPanel和一些TextBox控件或其他输入启用的控件。
    在这种情况下,只要其中一个控件获得LostFocus,就会引发Focus事件。

  3. 注意:

    如果您没有TextBox个控件,则可以通过在Tap的容器上捕获StackPanel事件来解决此问题:

    • 当容器中发生Tap事件且位置也位于StackPanel区域时,StackPanel将捕获该事件,并且不会将其传播到容器。
    • 当点击发生在StackPanel之外时,它只会在容器或容器中的其他控件上显示(这是 StackPanel丢失{{1 }} )。