Window.SetTitleBar(UIElement) Méthode

Définition

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 UIElementposition, 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, , ButtonForegroundColoretc.

Le thème basé sur les ressources utilisé dans les versions antérieures (comme WindowCaptionBackground) est déconseillé et n’a aucun effet.

S’applique à

Voir aussi