Maison > développement back-end > C++ > Comment appliquer des comportements de fusion à plusieurs objets à l'aide de paramètres de style en XAML ?

Comment appliquer des comportements de fusion à plusieurs objets à l'aide de paramètres de style en XAML ?

Patricia Arquette
Libérer: 2025-01-10 10:35:41
original
485 Les gens l'ont consulté

How to Apply Blend Behaviors to Multiple Objects Using Style Setters in XAML?

Ajouter un comportement de fusion dans le sélecteur de style

Question :

Vous souhaitez utiliser le paramètre de style pour définir le comportement de fusion de tous les boutons de votre application. Cependant, vous rencontrez l'erreur « La propriété « Comportements » n'a pas de paramètre accessible ».

Solution :

Le principal défi ici est que les comportements sont associés à des objets spécifiques et que la même instance de comportement ne peut pas être utilisée pour plusieurs objets. De plus, les propriétés attachées au comportement n’ont pas de paramètres et ne peuvent être ajoutées qu’en ligne.

Pour surmonter ces limitations :

  • Définissez votre comportement et déclenchez des classes de collecte.
  • Créez des propriétés attachées personnalisées pour manipuler le comportement principal et les propriétés de déclenchement.
  • Définissez l'attribut x:Shared sur False afin qu'une nouvelle copie soit créée à chaque fois que la ressource est référencée.
  • Profitez de la nature additive des comportements et des déclencheurs en ajoutant des propriétés de comportement et de déclencheur au lieu de les remplacer.

Voici un exemple utilisant cette méthode :

<Grid>
    <Grid.Resources>
        <String x:Key="stringResource1">stringResource1</String>
        <Triggers x:Key="debugTriggers" x:Shared="False">
            <EventTrigger EventName="MouseLeftButtonDown">
                <DebugAction Message="DataContext: {0}" MessageParameter="{Binding}" />
                <DebugAction Message="ElementName: {0}" MessageParameter="{Binding Text, ElementName=textBlock2}" />
                <DebugAction Message="Mentor: {0}" MessageParameter="{Binding Text, RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}}" />
            </EventTrigger>
        </Triggers>
        <Setter Property="local:SupplementaryInteraction.Triggers" Value="{StaticResource debugTriggers}" />
    </Grid.Resources>
    <StackPanel DataContext="{StaticResource stringResource1}">
        <TextBlock Name="textBlock1" Style="{StaticResource debugBehavior}" Text="textBlock1" />
        <TextBlock Name="textBlock2" Style="{StaticResource debugBehavior}" Text="textBlock2" />
        <TextBlock Name="textBlock3" Style="{StaticResource debugBehavior}" Text="textBlock3" />
    </StackPanel>
</Grid>
Copier après la connexion

Cette approche vous permet d'appliquer des comportements et des déclencheurs à plusieurs objets via des paramètres de style, ce qui facilite la réutilisation des fonctionnalités comportementales communes dans votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal