Window.SetTitleBar(UIElement) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 UIElement
posició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.