[英]Get default TitleBar height programmatically before a titlebar is created?
我正在為我的 uwp 應用程序創建一個自定義標題欄。 我想匹配系統欄的高度。
我也許能夠得到那個高度在呼喚
CoreApplication.GetCurrentView().TitleBar.Height
但這取決於很多事情。 標題欄可能尚未調整大小。
我還看到了一個建議(來自 winforms)來查看窗口頂部和內容視圖頂部的 y 坐標的差異。 但這又似乎很可疑。 一方面,一旦我將 ExtendViewIntoTitleBar 設置為 true,我認為該方法將不起作用。
是否有可靠的方法以編程方式獲取默認高度?
我知道這個答案在這個時候可能對最初提出問題的人沒有用,但我仍然想建議答案:
您可以在標題欄的大小更改時注冊處理程序。 (文檔提到大小更改,但它可能只是標題按鈕偏移而不是高度)這段代碼對我來說效果很好,至少目前
//Put the below line in the Page initialization/OnNavigated function
var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
coreTitleBar.LayoutMetricsChanged += CoreTitleBar_LayoutMetricsChanged;
private void CoreTitleBar_LayoutMetricsChanged(CoreApplicationViewTitleBar sender, object args)
{
MyAppTitleBar.Height = sender.Height;
}
每當CoreTitleBar_LayoutMetricsChanged
的尺寸發生變化(例如 DPI 的變化)時,上面的代碼CoreTitleBar_LayoutMetricsChanged
自動調用您的函數( CoreTitleBar_LayoutMetricsChanged
)。 在這里, MyAppTitleBar
是我為自定義標題欄制作的Grid
。
更多信息可以在這里找到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.