Window.SetTitleBar(UIElement) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Active le comportement de la barre de titre sur un élément XAML quand ExtendsContentIntoTitleBar
est 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)
Paramètres
- titleBar
- UIElement
Élément pour prendre en charge le comportement de la barre de titre.
Exemples
Cet exemple montre comment étendre la zone de contenu de la fenêtre et remplacer la barre de titre système par un qui contient une icône et du Grid
texte de titre.
<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
}
Remarques
Appelez cette méthode pour remplacer la barre de titre système par une interface utilisateur de barre de titre personnalisée pour votre application. L’élément spécifié prend en charge les mêmes interactions système que la barre de titre du système, notamment le glisser, double-cliquer pour le redimensionner et cliquer avec le bouton droit pour afficher le menu système. Par conséquent, l’entrée de pointeur (souris, tactile, stylet, etc.) n’est plus reconnue par l’élément et ses éléments enfants.
La zone rectangulaire occupée par l’élément spécifié fait office de barre de titre à des fins de pointeur, même si l’élément est bloqué par un autre élément ou si l’élément est transparent.
Si vous souhaitez placer des éléments interactifs dans la zone de barre de titre, vous pouvez utiliser les API InputNonClientPointerSource . Pour obtenir un exemple, reportez-vous à la page Barre de titre dans l’exemple WinUI Gallery .
Étendre le contenu dans la barre de titre
Pour spécifier une barre de titre personnalisée, vous devez définir ExtendsContentIntoTitleBar sur true
pour masquer la barre de titre système par défaut. Si ExtendsContentIntoTitleBar
a la valeur false
, l’appel à n’a SetTitleBar
aucun effet. Votre élément de barre de titre personnalisé est affiché dans le corps de la fenêtre de votre application en tant qu’élément d’interface utilisateur ordinaire et n’obtient pas les comportements de barre de titre.
Si vous définissez ExtendsContentIntoTitleBar sur true
mais n’appelez SetTitleBar
pas (ou n’appelez SetTitlebar
pas avec un null
argument), une barre de titre personnalisée par défaut est fournie. Cette barre de titre par défaut remplace directement la barre de titre système en position, largeur et hauteur. Si vous souhaitez une barre de titre spécialisée, vous pouvez appeler SetTitleBar avec un « UIElement » et obtenir une zone de barre de titre sur la UIElement
position, la largeur et la hauteur. Cela UIElement
peut être hébergé n’importe où dans le contenu de l’application, pas seulement dans la zone non cliente.
Élément de barre de titre
Un seul élément peut être spécifié comme barre de titre. Si plusieurs éléments sont requis, ils peuvent être spécifiés en tant qu’éléments enfants d’un seul conteneur (par exemple , grid ou StackPanel).
La barre de titre personnalisée fonctionne mieux quand elle n’est pas profondément imbriquée dans l’application. L’imbrication profonde de l’élément UIElement dans l’arborescence XAML peut entraîner des comportements de disposition imprévisibles. La barre de titre est toujours de forme rectangulaire. Dans le cas d’un rectangle non rectangulaire UIElement
, son rectangle englobant rectangulaire est utilisé pour les dimensions de la barre de titre.
Couleurs
Une barre de titre personnalisée utilise une barre de titre AppWindow pour son implémentation. Par conséquent, vous pouvez utiliser les API de thèmes AppWindowTitleBar pour les couleurs telles que ButtonBackgroundColor
, , ButtonForegroundColor
etc.
Le thème basé sur les ressources utilisé dans les versions antérieures (comme WindowCaptionBackground
) est déconseillé et n’a aucun effet.