語言

Window.SetTitleBar(UIElement) 方法

定義

當 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)已經被棄用,沒有任何影響。

適用於

另請參閱