簡體   English   中英

如何使NavView項目像“按鈕”而不是“單選按鈕”?

[英]How to get NavView Items to Act like “Push Buttons” instead of “Radio Buttons”?

我試圖讓我的NavViewItems像按鈕而不是切換按鈕一樣工作。我不希望NavViewItem在選擇后粘下來。

    private void NavView_SelectionChanged(
         NavigationView sender, 
         NavigationViewSelectionChangedEventArgs args)
    {
        if (args.IsSettingsSelected)
        {
            NavView.Header = "Settings";
            //rootFrame.Navigate(typeof(SettingsPage));
        }
        else if (args.SelectedItem != null)
        {

            NavigationViewItem item 
               = args.SelectedItem as NavigationViewItem;
            NavView.Header = item.Tag;
            // Unclick/Unselect NavViewItem Here <--
        }
    }

}

<Page ... >

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <NavigationView 
              RequestedTheme="Dark" 
              x:Name="NavView" 
              Header="Welcome" 
              SelectionChanged="NavView_SelectionChanged">
           <NavigationView.MenuItems>
                <NavigationViewItem 
                     Icon="Home"        
                     Content="Home"            
                     Tag="Home"         
                     Background="Maroon"    
                     Foreground="White"/>
                <NavigationViewItem 
                     Icon="Back"        
                     Content="PrevPage"        
                     Tag="Back"         
                     Background="Maroon"    
                     Foreground="White"/>
                <NavigationViewItem 
                     Icon="Globe"       
                     Content="Enter Info1"   
                     Tag="EnterCompany" 
                     Background="DarkGreen" Foreground="White"/>
                <NavigationViewItem 
                     Icon="PostUpdate"  
                     Content="Enter Info2"       
                     Tag="EnterJob"     
                     Background="DarkGreen" Foreground="White"/>
                <NavigationViewItem 
                     Icon="Globe"       
                     Content="Query Info1" 
                     Tag="QueryCompany" 
                     Background="DarkBlue"  Foreground="White"/>
                <NavigationViewItem 
                     Icon="PostUpdate"  
                     Content="Query Info2"      
                     Tag="QueryJob"     
                     Background="DarkBlue"  
                     Foreground="White"/>
            </NavigationView.MenuItems>

            <Frame x:Name="ContentFrame" />
        </NavigationView>

    </Grid>
</Page>

我唯一知道的方法是扔掉導航控件,然后只使用網格上的按鈕即可返回...或者定義一個模板,以關閉所選內容的突出顯示...無論如何,我一直在堅持導航控件只是為了成為標准並獲得自動調整大小功能...

將SelectionChanged事件中的SelectedIndex設置為null,以使“導航”選項卡取消切換並像按鈕一樣起作用。 在1803年之前,SelectedIndex屬性是從SelectionChanged事件讀取的,並且是使用Dispatcher進行的必需設置。

                await Dispatcher.RunAsync(
                      Windows.UI.Core.CoreDispatcherPriority.Normal,
                     () => {
                          NavView.SelectedItem = null;
                          NavView.Header = "myHeader;
                });

但是,在1803年,即使SelectedItem屬性不再從SelectionChanged事件變為只讀狀態,此技巧也不再起作用。 在1803年使用Dispatcher將SelectionIndex設置為null會導致無限遞歸循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM