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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP / C#基于NavView模式更改控件可见性相关的知识,希望对你有一定的参考价值。

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

我有一个简单的AppBarButton StackPanel的以下导航视图控件。

我不确定是否有办法引用当前的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>
答案

您可以使用NavigationView的PaneClosedPaneOpened事件来更改StackPanel的可见性,另一种方法是使用DisplayModeChanged,您可以对PaneDisplayMode属性使用switch语句并检查它是关闭还是打开,然后更改可见度。

以上是关于UWP / C#基于NavView模式更改控件可见性的主要内容,如果未能解决你的问题,请参考以下文章

更改窗口大小 UWP 时更改控件大小布局

基于控件可见性在运行时自定义动态布局

如何禁用 Xbox One 的指针模式(C#、UWP)

是否有用于 UWP 的 Webm C#/Xaml 控件?

C# UWP 无法用代码显示用户控件

UWP的TextBox和PasswordBox使用输入范围更改触摸键盘InputScope