Window.SetTitleBar(UIElement) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當 為 true
時ExtendsContentIntoTitleBar
,在 XAML 元素上啟用標題列行為。
public:
virtual void SetTitleBar(UIElement ^ titleBar) = SetTitleBar;
void SetTitleBar(UIElement const& titleBar);
public void SetTitleBar(UIElement titleBar);
function setTitleBar(titleBar)
Public Sub SetTitleBar (titleBar As UIElement)
參數
- titleBar
- UIElement
要支援標題列行為的專案。
範例
這個範例示範如何擴充視窗的內容區域,並將系統標題列取代為 Grid
包含圖示和標題文字的 。
<Window ... >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="32"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid x:Name="AppTitleBar">
<Image Source="Images/WindowIcon.png"
HorizontalAlignment="Left"
Width="16" Height="16"
Margin="8,0"/>
<TextBlock x:Name="AppTitleTextBlock" Text="App title"
TextWrapping="NoWrap"
Style="{StaticResource CaptionTextBlockStyle}"
VerticalAlignment="Center"
Margin="28,0,0,0"/>
</Grid>
<NavigationView Grid.Row="1">
<!-- Page content -->
</NavigationView>
</Grid>
</Window>
public MainWindow()
{
this.InitializeComponent();
ExtendsContentIntoTitleBar = true;
SetTitleBar(AppTitleBar); // skip call to this api to get a default custom title bar
}
備註
呼叫這個方法,以應用程式的自定義標題列 UI 取代系統標題列。 指定的元素支援與系統標題列相同的系統互動,包括拖曳、按兩下以重設大小,然後按下滑鼠右鍵以顯示系統功能表。 因此,元素及其子元素無法再辨識指標輸入 (滑鼠、觸控、手寫筆等) 。
指定專案所佔用的矩形區域會做為指標用途的標題列,即使專案被另一個項目封鎖,或專案是透明的。
如果您想要將互動式元素放在標題欄區域中,您可以使用 InputNonClientPointerSource API。 如需範例,請參閱 WinUI 資源庫中的標題欄頁面。
將內容延伸至標題列
若要指定自定義標題列,您必須將 ExtendsContentIntoTitleBar 設定為 true
,以隱藏預設的系統標題列。 如果 為 ExtendsContentIntoTitleBar
false
,則呼叫 SetTitleBar
不會有任何作用。 您的自定義標題列元素會顯示在應用程式窗口主體中作為一般 UI 元素,而且不會取得標題列行為。
如果您將 ExtendsContentIntoTitleBar 設定為 true
,但不要呼叫 (或以null
自變數) 呼叫SetTitleBar
SetTitlebar
,則會提供預設的自定義標題列。 此預設標題列是直接取代位置、寬度和高度的系統標題列。 如果您想要特製化標題列,您可以使用 『UIElement』 呼叫 SetTitleBar,並在該UIElement
位置、寬度和高度上取得標題欄區域。 這 UIElement
可以裝載於應用程式內容中的任何位置,而不只是非工作區。
標題列元素
只能將單一元素指定為標題列。 如果需要多個元素,則可以將其指定為單一容器的子元素, (例如 Grid 或 StackPanel) 。
自定義標題列在應用程式內不是巢狀結構時效果最佳。 在 XAML 樹狀結構中深度巢狀 UIElement 可能會導致無法預期的版面配置行為。 標題列一律為矩形圖形。 如果是非矩形 UIElement
,則會將其矩形周框用於標題列的維度。
色彩
自定義標題列會使用 AppWindow標題列 進行實作。 因此,您可以使用 AppWindowTitleBar 主題 API 來取得 、 ButtonBackgroundColor
ButtonForegroundColor
等色彩。
舊版中使用的資源主題 (,例如 WindowCaptionBackground
) 已被取代,而且沒有任何作用。