Window.SetTitleBar(UIElement) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當 ExtendsContentIntoTitleBar 為 true時,能啟用 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
支持標題欄行為的元素。
範例
此範例展示了如何擴展視窗內容區域,並將系統標題列替換為包含圖示與標題文字的 a 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="16,0"/>
<TextBlock x:Name="AppTitleTextBlock" Text="App title"
TextWrapping="NoWrap"
Style="{StaticResource CaptionTextBlockStyle}"
VerticalAlignment="Center"
Margin="48,0,0,0"/>
</Grid>
<NavigationView Grid.Row="1">
<!-- Page content -->
</NavigationView>
</Grid>
</Window>
public MainWindow()
{
this.InitializeComponent();
ExtendsContentIntoTitleBar = true;
SetTitleBar(AppTitleBar);
}
備註
呼叫這個方法,將系統標題列替換成你應用程式的自訂標題列介面。
從 Windows 應用程式 SDK 1.7 開始,你可以使用 XAML 標題列控制項來建立自訂標題列。 更多資訊與範例請參見 標題欄 。
若想建立沒有控制項的 TitleBar 自訂標題列,請參見 標題欄自訂。
將內容延伸到標題欄
要指定自訂標題欄,必須先將 ExtendsContentIntoTitleBar 設定為 隱藏 true 系統標題欄。
- 若
ExtendsContentIntoTitleBar是false,則呼叫SetTitleBar不具效。 你自訂的標題列元素會在應用程式視窗的主體中以一般 UI 元素的形式顯示,且不會有標題列的行為。 - 如果你將 ExtendsContentIntoTitleBar 設為
true但不呼叫SetTitleBar(或SetTitleBar呼叫有null參數),預設標題欄會被提供。 這個預設標題列在位置、寬度和高度上直接取代了系統標題欄。
謹慎
ExtendsContentIntoTitleBar 會在 Window 的 XAML IntelliSense 顯示,但在 XAML 中設定它會造成錯誤。 請改為在程式碼中設定此屬性。
標題欄元素
標題列控制
標題欄只能指定一個元素。 我們推薦使用 XAML TitleBar 控制項來做這件事。 更多資訊與範例請參見 標題欄 。
其他元素
若要完全控制標題列元素,你可以在不使用 TitleBar 控制的情況下建立標題欄。 更多資訊請參閱 標題列自訂 。
多個元素可以指定為單一容器的子元素(例如 Grid 或 StackPanel)。 容器元素所佔的矩形區域作為指標標題列,即使該元素被其他元素阻擋或該元素是透明的。 指定的元素支援與系統標題列相同的系統互動,包括拖曳、雙擊調整大小,以及右鍵點擊顯示系統選單。 因此,指標輸入(滑鼠、觸控、筆等)不再被元素及其子元素識別。 如果你想在標題列區域放置互動元素,可以使用 InputNonClientPointerSource API。
自訂標題列在應用程式中不深度巢狀時效果最佳。 將 UIElement 深度巢植於 XAML 樹中可能會導致無法預測的版面配置行為。 標題欄永遠是矩形。 若為非矩形 UIElement,則其矩形邊界矩形將用於標題欄的尺寸。
顏色
自訂標題列則使用 AppWindow 標題列 來實作。 因此,你可以使用 AppWindowTitleBar 主題 API 來處理像 ButtonBackgroundColor是 、 ButtonForegroundColor、 等顏色。
早期版本中使用的資源主題(例如 WindowCaptionBackground)已經被棄用,沒有任何影響。