Window.SetTitleBar(UIElement) メソッド

定義

trueの場合、XAML 要素に対するタイトル バーの動作をExtendsContentIntoTitleBar有効にします。

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 ギャラリー サンプルの Titlebar ページを参照してください。

タイトル バーにコンテンツを拡張する

カスタム タイトル バーを指定するには、 ExtendsContentIntoTitleBar を に設定して true 、既定のシステム タイトル バーを非表示にする必要があります。 が falseの場合ExtendsContentIntoTitleBar、 のSetTitleBar呼び出しは影響を及ぼすことはありません。 カスタム タイトル バー要素は、通常の UI 要素としてアプリ ウィンドウの本文に表示され、タイトル バーの動作は取得されません。

ExtendsContentIntoTitleBar を に設定しても、 をtrue呼び出さない (または引数をnull指定して呼び出SetTitleBarSetTitlebarす) 場合は、既定のカスタム タイトル バーが提供されます。 この既定のタイトル バーは、位置、幅、および高さのシステム タイトル バーを直接置き換えたものになります。 特殊なタイトル バーが必要な場合は、'UIElement' でSetTitleBar を呼び出し、そのUIElement位置、幅、高さのタイトル バー領域を取得できます。 これは UIElement 、クライアント以外の領域だけでなく、アプリのコンテンツ内の任意の場所でホストできます。

タイトル バー要素

タイトル バーとして指定できる要素は 1 つだけです。 複数の要素が必要な場合は、1 つのコンテナー ( GridStackPanel など) の子要素として指定できます。

カスタム タイトル バーは、アプリ内で深く入れ子になっていない場合に最適です。 XAML ツリー内で UIElement を深く入れ子にすると、予期しないレイアウト動作が発生する可能性があります。 タイトル バーは常に四角形の になります。 四角形 UIElement以外の場合は、その四角形の外接する四角形がタイトル バーの寸法に使用されます。

カスタム タイトル バーでは、その実装に AppWindow タイトル バー を使用します。 その結果、などのButtonBackgroundColorButtonForegroundColor色に AppWindowTitleBar テーマ API を使用できます。

以前のバージョン (など WindowCaptionBackground) で使用されているリソース ベースのテーマは非推奨であり、影響はありません。

適用対象

こちらもご覧ください