簡體   English   中英

在創建標題欄之前以編程方式獲取默認標題欄高度?

[英]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.

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