如何通过Hub访问MenuFlyout或使其不会消失

时间:2017-03-29 20:48:55

标签: c# xaml uwp

我想点击ToggleMenuFlyoutItem后我的MenuFlyout不会消失。所以,如果你能回答我怎么能这样做,那就太好了。我想出了一个想法,当我点击任何ToggleMenuFlyoutItem时,将调用该函数; t隐藏MenuFlyout。 这是我的Hub的XAML代码片段:

<Hub x:Uid="SettingsPageTitle" x:Name="settingsPage" Header="Settings">
        <HubSection x:Uid="SettingsPageGeneral" x:Name="settingsGeneral" Header="General">
            <DataTemplate x:Uid="anotherSettingGeneralPage">
                <Grid>
                    <StackPanel Width="500" Height="500" x:Name="settingsGeneralPage" Background="WhiteSmoke">
                        <StackPanel x:Name="enabledDaysPage" Height="Auto">
                            <Button x:Name="enabledDays" Content="Enabled Days" FontWeight="Bold" Background="Transparent" Width="500" HorizontalContentAlignment="Left" Click="enabledDays_Click">
                                <FlyoutBase.AttachedFlyout>
                                    <MenuFlyout x:Name="enabledDaysMenuFlyout">
                                        <ToggleMenuFlyoutItem x:Name="mon" Text="Monday" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Tuesday" x:Name="tue" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Wednesday" x:Name="wed" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Thursday" x:Name="thu" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Friday" x:Name="fri" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Saturday" x:Name="sat" Tag="enabledDay" Click="enabledDays_Click"/>
                                        <ToggleMenuFlyoutItem Text="Sunday" x:Name="sun" Tag="enabledDay" Click="enabledDays_Click"/>
                                    </MenuFlyout>
                                </FlyoutBase.AttachedFlyout>
                            </Button>
                            <TextBlock x:Name="enabledDaysText"/>
                        </StackPanel>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </HubSection>

那么你可以帮助实现这一目标吗?或者至少我如何访问我的MenuFlyout,请注意我尝试this但它没有帮助我。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想点击ToggleMenuFlyoutItem,并且不希望隐藏MenuFlyout。您应该能够添加MenuFlyout的{​​{3}}事件。

Closing事件中,我们可以使用Closing属性。如果我们将true设置为true,它将阻止弹出窗口关闭。

例如:

private void enabledDaysMenuFlyout_Closing(FlyoutBase sender, FlyoutBaseClosingEventArgs args)
{
    args.Cancel = true;
}

更新

<Hub x:Uid="SettingsPageTitle" x:Name="settingsPage" Header="Settings">
    <HubSection x:Uid="SettingsPageGeneral" x:Name="settingsGeneral" Header="General">
        <DataTemplate x:Uid="anotherSettingGeneralPage">
            <Grid>
                <StackPanel Width="500" Height="500" x:Name="settingsGeneralPage" Background="WhiteSmoke">
                    <StackPanel x:Name="enabledDaysPage" Height="Auto">
                        <Button x:Name="enabledDays" Content="Enabled Days" FontWeight="Bold" Background="Transparent" Width="500" HorizontalContentAlignment="Left" Click="enabledDays_Click">
                            <FlyoutBase.AttachedFlyout>
                                <MenuFlyout x:Name="enabledDaysMenuFlyout" Closing="enabledDaysMenuFlyout_Closing">
                                    <ToggleMenuFlyoutItem x:Name="mon" Text="Monday" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Tuesday" x:Name="tue" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Wednesday" x:Name="wed" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Thursday" x:Name="thu" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Friday" x:Name="fri" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Saturday" x:Name="sat" Tag="enabledDay" Click="enabledDays_Click" />
                                    <ToggleMenuFlyoutItem Text="Sunday" x:Name="sun" Tag="enabledDay" Click="enabledDays_Click" />
                                </MenuFlyout>
                            </FlyoutBase.AttachedFlyout>
                        </Button>
                        <TextBlock x:Name="enabledDaysText" />
                    </StackPanel>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </HubSection>
</Hub>