Compartilhar via


Window.SetTitleBar(UIElement) Método

Definição

Habilita o comportamento da barra de título em um elemento XAML quando ExtendsContentIntoTitleBar é true.

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)

Parâmetros

titleBar
UIElement

O elemento para dar suporte ao comportamento da barra de título.

Exemplos

Este exemplo mostra como estender a área de conteúdo da janela e substituir a barra de título do sistema por um Grid que contém um ícone e um texto de título.

<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
}

Comentários

Chame esse método para substituir a barra de título do sistema por uma interface do usuário da barra de título personalizada para seu aplicativo. O elemento especificado dá suporte às mesmas interações do sistema que a barra de título do sistema, incluindo arrastar, clicar duas vezes para redimensionar e clicar com o botão direito do mouse para mostrar o menu do sistema. Como resultado, a entrada de ponteiro (mouse, toque, caneta e assim por diante) não é mais reconhecida pelo elemento e seus elementos filho.

A área retangular ocupada pelo elemento especificado atua como a barra de título para fins de ponteiro, mesmo que o elemento seja bloqueado por outro elemento ou o elemento seja transparente.

Se você quiser colocar elementos interativos na área da barra de título, poderá usar AS APIs InputNonClientPointerSource . Consulte a página Barra de títulos no exemplo da Galeria do WinUI para obter um exemplo.

Estender o conteúdo para a barra de título

Para especificar uma barra de título personalizada, você deve definir ExtendsContentIntoTitleBar para true ocultar a barra de título do sistema padrão. Se ExtendsContentIntoTitleBar for false, a chamada para SetTitleBar não terá nenhum efeito. O elemento de barra de título personalizado é mostrado no corpo da janela do aplicativo como um elemento de interface do usuário comum e não obtém os comportamentos da barra de título.

Se você definir ExtendsContentIntoTitleBar como true mas não chamar SetTitleBar (ou chamar SetTitlebar com um null argumento), uma barra de título personalizada padrão será fornecida. Essa barra de título padrão é uma substituição direta da barra de título do sistema em posição, largura e altura. Se você quiser uma barra de título especializada, poderá chamar SetTitleBar com um 'UIElement' e obter uma área de barra de título nessa UIElementposição, largura e altura. Isso UIElement pode ser hospedado em qualquer lugar dentro do conteúdo do aplicativo, não apenas na área não cliente.

Elemento de barra de título

Somente um único elemento pode ser especificado como a barra de título. Se forem necessários vários elementos, eles poderão ser especificados como elementos filho de um único contêiner (como uma Grade ou StackPanel).

A barra de título personalizada funciona melhor quando não está aninhada profundamente dentro do aplicativo. Aninhar profundamente o UIElement dentro da árvore XAML pode causar comportamentos de layout imprevisíveis. A barra de título sempre será uma forma retangular. No caso de um não retangular UIElement, seu retângulo delimitador retangular será usado para dimensões da barra de título.

Cores

Uma barra de título personalizada usa uma barra de título AppWindow para sua implementação. Como resultado, você pode usar APIs de temas AppWindowTitleBar para cores como ButtonBackgroundColor, ButtonForegroundColoretc.

O tema baseado em recurso usado em versões anteriores (como WindowCaptionBackground) foi preterido e não tem nenhum efeito.

Aplica-se a

Confira também