Window.SetTitleBar(UIElement) Método

Definición

Habilita el comportamiento de la barra de título en un elemento XAML cuando ExtendsContentIntoTitleBar es 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

Elemento que admite el comportamiento de la barra de título.

Ejemplos

En este ejemplo se muestra cómo extender el área de contenido de la ventana y reemplazar la barra de título del sistema por un Grid objeto que contiene un icono y un 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
}

Comentarios

Llame a este método para reemplazar la barra de título del sistema por una interfaz de usuario de barra de título personalizada para la aplicación. El elemento especificado admite las mismas interacciones del sistema que la barra de título del sistema, como arrastrar, hacer doble clic para cambiar el tamaño y hacer clic con el botón derecho para mostrar el menú del sistema. Como resultado, el elemento y sus elementos secundarios ya no reconocen la entrada de puntero (mouse, táctil, lápiz, etc.).

El área rectangular ocupada por el elemento especificado actúa como barra de título con fines de puntero, incluso si el elemento está bloqueado por otro elemento o el elemento es transparente.

Si desea colocar elementos interactivos en el área de la barra de título, puede usar las API InputNonClientPointerSource . Consulte la página Barra de título del ejemplo de la Galería de WinUI para obtener un ejemplo.

Extensión del contenido a la barra de título

Para especificar una barra de título personalizada, debe establecer ExtendsContentIntoTitleBar en true para ocultar la barra de título del sistema predeterminada. Si ExtendsContentIntoTitleBar es false, la llamada a SetTitleBar no tiene ningún efecto. El elemento de barra de título personalizado se muestra en el cuerpo de la ventana de la aplicación como un elemento de interfaz de usuario normal y no obtiene los comportamientos de la barra de título.

Si establece ExtendsContentIntoTitleBar en true pero no llama a SetTitleBar (o llama SetTitlebar a con un null argumento), se proporciona una barra de título personalizada predeterminada. Esta barra de título predeterminada es un reemplazo directo de la barra de título del sistema en posición, ancho y alto. Si desea una barra de título especializada, puede llamar a SetTitleBar con un "UIElement" y obtener un área de barra de título en esa UIElementposición, ancho y alto. Esto UIElement se puede hospedar en cualquier parte del contenido de la aplicación, no solo en el área que no es de cliente.

Elemento de barra de título

Solo se puede especificar un único elemento como barra de título. Si se requieren varios elementos, se pueden especificar como elementos secundarios de un único contenedor (como grid o StackPanel).

La barra de título personalizada funciona mejor cuando no está anidada profundamente dentro de la aplicación. El anidamiento profundo de UIElement dentro del árbol XAML puede provocar comportamientos de diseño impredecibles. La barra de título siempre será una forma rectangular. En el caso de un rectángulo no rectangular UIElement, se usará su rectángulo delimitador rectangular para las dimensiones de la barra de título.

Colores

Una barra de título personalizada usa una barra de título de AppWindow para su implementación. Como resultado, puede usar las API de temas appWindowTitleBar para colores como ButtonBackgroundColor, ButtonForegroundColor, etc.

La creación de temáticas basada en recursos usada en versiones anteriores (como WindowCaptionBackground) está en desuso y no tiene ningún efecto.

Se aplica a

Consulte también