【问题标题】:Windows Phone MenyFlyout crashWindows Phone MenyFlyout 崩溃
【发布时间】:2015-02-27 20:18:22
【问题描述】:

我的 Windows Phone 应用中有两个应用栏按钮。我们称它们为 Button1 和 Button2。每个按钮显示带有一些项目的MenuFlyout。问题很简单。点击 Button1 时,会出现对应的MenuFlyout。如果在打开 Button1 的 de MenuFlyout 时点击 Button2,则应用程序崩溃并出现“严重故障”异常。如果MenuFlyout 是打开的,我在它外面点击,然后按下另一个MenuFlyout 的按钮,它就可以工作。我试图在点击另一个MenuFlyouts 的按钮时隐藏其中一个MenuFlyouts,但仍然崩溃。有任何想法吗?提前致谢。

【问题讨论】:

  • 您可以分享任何代码来重现问题吗?

标签: windows-phone-8.1


【解决方案1】:

这是第一个按钮的代码:

    private void SelectButton_Click(object sender, RoutedEventArgs e)
    {
        if (menuFlyout != null)
        {
            menuFlyout.Items.Clear();
            for (int i = 0; i < listSource.View.Count; i++)
            {
                flyoutItem = new MenuFlyoutItem();
                flyoutItem.Text = this.listSource.View[i].ToString();
                flyoutItem.FontSize = 16;
                flyoutItem.FlowDirection = Windows.UI.Xaml.FlowDirection.LeftToRight;
                flyoutItem.Click += flyoutItem_Click;
                menuFlyout.Items.Add(flyoutItem);
            }
            menuFlyout.ShowAt(CmdBar);
        }
    }

这是另一个按钮:

    private void FilterButton_Click(object sender, RoutedEventArgs e)
    {
        if (filterFlyout != null)
        {
            filterFlyout.Items.Clear();
            for (int i = 0; i < _filterList.Count; i++)
            {
                FilterItem = new MenuFlyoutItem();
                FilterItem.Text = _filterList[i];
                FilterItem.FontSize = 16;
                FilterItem.FlowDirection = Windows.UI.Xaml.FlowDirection.LeftToRight;
                FilterItem.Click += FilterItem_Click;
                filterFlyout.Items.Add(FilterItem);
            }
            filterFlyout.Items.Add(new MenuFlyoutItem());
            filterFlyout.ShowAt(CmdBar);
        }
    }

这是按钮的 xaml:

<Page.BottomAppBar>
    <CommandBar x:Name="CmdBar" Background="#F0A30A" Foreground="Black">
        <AppBarButton x:Uid="SelectButton" x:Name="SelectButton" Icon="Calendar" Label="day filter" Click="SelectButton_Click">
           <AppBarButton.Flyout>
            <MenuFlyout x:Name="menuFlyout">
                <MenuFlyout.MenuFlyoutPresenterStyle>
                    <Style TargetType="MenuFlyoutPresenter">
                        <Setter Property="BorderBrush" Value="Blue"/>
                        <Setter Property="BorderThickness" Value="5"/>
                    </Style>
                </MenuFlyout.MenuFlyoutPresenterStyle>
                <MenuFlyoutItem x:Name="flyoutItem" Background="Black" Click="flyoutItem_Click" Margin="0,0,20.833,0"/>
            </MenuFlyout>
            </AppBarButton.Flyout>
        </AppBarButton>
        <AppBarButton x:Uid="FilterButton" x:Name="FilterButton" Icon="Clock" Label="time filter" Click="FilterButton_Click">
            <MenuFlyout x:Name="filterFlyout">
                <MenuFlyout.MenuFlyoutPresenterStyle>
                    <Style TargetType="MenuFlyoutPresenter">
                        <Setter Property="BorderBrush" Value="Blue"/>
                        <Setter Property="BorderThickness" Value="5"/>
                    </Style>
                </MenuFlyout.MenuFlyoutPresenterStyle>
                <MenuFlyoutItem x:Name="FilterItem" Click="FilterItem_Click" Margin="0,0,20.833,0"/>
            </MenuFlyout>
        </AppBarButton>
    </CommandBar>
</Page.BottomAppBar>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多