[英]UWP extend into title bar - default title bar converting back button
在我的UWP應用中,我試圖使后退按鈕進入標題欄,這是我過去做過的很多次。 這次,我面臨的麻煩是默認標題欄似乎並沒有消失,而是懸停在我的按鈕上,因此我無法按下它。 我嘗試創建帶有邊距的自定義標題欄,但是並沒有解決問題。 這是標題欄的擴展...:
var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
...以及自定義標題欄:
var titleBarGrid = new Grid()
{
Background = new SolidColorBrush(Colors.Transparent),
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top,
Height = 48,
Margin = new Thickness(50, 0, 150, 0),
};
Window.Current.SetTitleBar(titleBarGrid);
這些是在App.xaml.cs中設置的。
如何刪除/覆蓋默認標題欄?
問題是您將titleBarGrid
的背景色設置為Transparent
。 盡管這是一種完全透明的顏色,但是對於命中測試,它仍然是“純色”。 如果要確保單擊Grid
,則根本不要設置Background
。
我也認為SetTitleBar
的參數應該是已經屬於頁面XAML樹的一部分的控件,因此您應該首先將Grid
添加到頁面上的某處。 最簡單的解決方案是直接在XAML中創建。
最后,如果要保持純色背景,還可以觀察從CoreTitleBar.LayoutMetricsChanged
事件獲得的標題欄的Inset
值。 SystemOverlayLeftInset
屬性將告訴您應該在左側添加多少填充,以便內容不會覆蓋標題欄的后退按鈕。
最后-我想提一下,最新的設計指南不鼓勵在標題欄中使用后退按鈕,而是建議您在應用程序用戶界面中實施后退按鈕。 參見文檔 :
以前,UWP應用使用AppViewBackButtonVisibility進行向后導航。 將繼續支持該API以實現向后兼容性,但我們不再建議您依賴標題欄的后退按鈕。 相反,您的應用應繪制自己的應用內后退按鈕。
后退按鈕應該是應用程序內UI的一部分,因為否則,當Windows 10中發布“設置”功能時,后退按鈕欄會顯示在應用程序的頂部,效果不佳。
我以某種方式通過將settitlebar(grid)
InitializeComponent()
之settitlebar(grid)
修復它。 馬丁(Martin)-如果我不設置顏色,則該窗口將不可拖動,因此除了最小化按鈕的默認左側外,沒有其他可拖動的東西。 我制作為標題欄的網格的邊距不與我的任何按鈕重疊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.