Window.SetTitleBar(UIElement) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
が 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
指定して呼び出SetTitleBar
SetTitlebar
す) 場合は、既定のカスタム タイトル バーが提供されます。 この既定のタイトル バーは、位置、幅、および高さのシステム タイトル バーを直接置き換えたものになります。 特殊なタイトル バーが必要な場合は、'UIElement' でSetTitleBar を呼び出し、そのUIElement
位置、幅、高さのタイトル バー領域を取得できます。 これは UIElement
、クライアント以外の領域だけでなく、アプリのコンテンツ内の任意の場所でホストできます。
タイトル バー要素
タイトル バーとして指定できる要素は 1 つだけです。 複数の要素が必要な場合は、1 つのコンテナー ( Grid や StackPanel など) の子要素として指定できます。
カスタム タイトル バーは、アプリ内で深く入れ子になっていない場合に最適です。 XAML ツリー内で UIElement を深く入れ子にすると、予期しないレイアウト動作が発生する可能性があります。 タイトル バーは常に四角形の になります。 四角形 UIElement
以外の場合は、その四角形の外接する四角形がタイトル バーの寸法に使用されます。
色
カスタム タイトル バーでは、その実装に AppWindow タイトル バー を使用します。 その結果、などのButtonBackgroundColor
ButtonForegroundColor
色に AppWindowTitleBar テーマ API を使用できます。
以前のバージョン (など WindowCaptionBackground
) で使用されているリソース ベースのテーマは非推奨であり、影響はありません。