UWP / C#基于NavView模式更改控件可见性

时间:2018-09-09 14:40:00

标签: c# uwp uwp-xaml

我需要尝试根据NavigationView“ PaneDisplaymode”更改StackPanel的可见性

我具有以下带有简单AppBarButton StackPanel的Navigation View控件。

不确定是否可以引用当前的PanDisplayMode并确定StackPanel的可见性吗?

任何有关此的指导/帮助都将很棒。

<NavigationView IsSettingsVisible="False" 
                            PaneTitle="Menu"                            
                            x:Name="NavView"                             
                            IsBackButtonVisible="Collapsed" 
                            PaneDisplayMode="Left" 
                            AlwaysShowHeader="True"        
                            SelectionChanged="NavView_SelectionChanged">            

            <!-- All navigation view Items nested within here -->
            <NavigationView.MenuItems>

                <StackPanel Orientation="Horizontal" UseLayoutRounding="False" x:Name="AppBarButtons" Tag="AppBarButtonPanel"> <!--Visibility="{Binding ControlShit}"-->
                    <AppBarButton Icon="Page2" Margin="0, 2, 1, 0" Tag="New_Sheet" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="NewFile_ClickAsync"/>
                    <AppBarButton Icon="OpenFile" Margin="1, 2, 0, 0" Tag="Open_Sheet" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="OpenFile_Click"/>
                    <AppBarButton Icon="Save" Margin="1, 2, 0, 0" Tag="Save_Sheet" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="SaveButton_ClickAsync"/>
                    <AppBarButton Icon="Setting" Margin="1, 2, 0, 0" Tag="Settings_Page" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="SettingsButton_Click"/>
                    <AppBarButton Icon="Calculator" Margin="1, 2, 0, 0" Tag="Calculator_Open" HorizontalAlignment="Center" Width="56.5" Height="56.5" ClickMode="Press" Click="CalcButton_ClickAsync"/>
                </StackPanel>
</NavigationView.MenuItems>

1 个答案:

答案 0 :(得分:1)

您可以使用 NavigationView PaneClosedPaneOpened事件来更改 StackPanel Visibility 这样做的方法是使用DisplayModeChanged,在其中您可以对 PaneDisplayMode 属性使用switch语句,并检查它是关闭还是打开,然后相应地更改可见性。