다음을 통해 공유


Window.SetTitleBar(UIElement) 메서드

정의

가 인 경우 XAML 요소에서 제목 표시줄 동작을 ExtendsContentIntoTitleBartrue사용하도록 설정합니다.

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 갤러리 샘플의 제목 표시줄 페이지를 참조하세요.

제목 표시줄로 콘텐츠 확장

사용자 지정 제목 표시줄을 지정하려면 ExtendsContentIntoTitleBartrue 로 설정하여 기본 시스템 제목 표시줄을 숨겨야 합니다. 가 이falseExtendsContentIntoTitleBar 에 대한 SetTitleBar 호출이 아무런 영향을 주지 않습니다. 사용자 지정 제목 표시줄 요소는 앱 창의 본문에 일반 UI 요소로 표시되며 제목 표시줄 동작을 얻지 못합니다.

ExtendsContentIntoTitleBar를 로 true 설정했지만 호출 SetTitleBar (또는 인수를 사용하여 null 호출SetTitlebar)하지 않으면 기본 사용자 지정 제목 표시줄이 제공됩니다. 이 기본 제목 표시줄은 위치, 너비 및 높이에서 시스템 제목 표시줄을 직접 대체합니다. 특수 제목 표시줄을 원하는 경우 'UIElement'를 사용하여 SetTitleBar를 호출하고 해당 UIElement위치, 너비 및 높이에 제목 표시줄 영역을 가져올 수 있습니다. 클라이언트 UIElement 가 아닌 영역뿐만 아니라 앱의 콘텐츠 내에서 어디서나 호스트할 수 있습니다.

제목 표시줄 요소

단일 요소만 제목 표시줄로 지정할 수 있습니다. 여러 요소가 필요한 경우 단일 컨테이너(예: Grid 또는 StackPanel)의 자식 요소로 지정할 수 있습니다.

사용자 지정 제목 표시줄은 앱 내에 중첩되지 않은 경우에 가장 잘 작동합니다. XAML 트리 내에서 UIElement를 심 층 중첩하면 예측할 수 없는 레이아웃 동작이 발생할 수 있습니다. 제목 표시줄은 항상 사각형 모양의 입니다. 직사각형 UIElement이 아닌 경우 직사각형 경계 사각형이 제목 표시줄의 크기에 사용됩니다.

사용자 지정 제목 표시줄은 구현에 AppWindow 제목 표시줄 을 사용합니다. 따라서 , ButtonForegroundColor등과 같은 ButtonBackgroundColor색에 AppWindowTitleBar 테마 API를 사용할 수 있습니다.

이전 버전(예: WindowCaptionBackground)에서 사용된 리소스 기반 테마는 더 이상 사용되지 않으며 아무런 영향을 주지 않습니다.

적용 대상

추가 정보