Maison > développement back-end > C++ > Comment ajouter dynamiquement plusieurs rectangles à une toile WPF à l'aide de MVVM?

Comment ajouter dynamiquement plusieurs rectangles à une toile WPF à l'aide de MVVM?

Susan Sarandon
Libérer: 2025-01-29 17:21:09
original
921 Les gens l'ont consulté

How to Dynamically Add Multiple Rectangles to a WPF Canvas using MVVM?

Utilisez le mode MVVM pour ajouter dynamiquement n'importe quel nombre de rectangles dans le canevas WPF

Introduction

Ce guide résoudra le problème de la façon d'ajouter plusieurs rectangles au mode d'architecture MVVM pour ajouter plusieurs rectangles à la fenêtre principale de l'application WPF. Nous explorerons comment utiliser la représentation abstraite de la liste rectangulaire dans le modèle de vue, ainsi que comment utiliser le contrôle des éléments de la canevas itemspanel, le style élémentContainersStyle et l'élément pour afficher dynamiquement ces rectangles.

Affichage de la conception du modèle

Afin de gérer le résumé du rectangulaire, définissez un modèle de vue, qui contient une collection d'un objet rectim.

Afficher l'implémentation

Dans la vue, utilisez des éléments Control pour visualiser la collection rectangulaire:
<code class="language-csharp">public class RectItem
{
    public double X { get; set; }
    public double Y { get; set; }
    public double Width { get; set; }
    public double Height { get; set; }
}

public class ViewModel
{
    public ObservableCollection<RectItem> RectItems { get; set; }
}</code>
Copier après la connexion

Baid avec le modèle de vue

La propriété ItemsSource des éléments Control est liée à la propriété RECTEMS dans le modèle de vue. Les propriétés rectangulaires Canvas.Left et Canvas.Top sont définies sur les attributs x et y de leurs objets rectisem respectifs par liaison des données.
<code class="language-xml"><ItemsControl ItemsSource="{Binding RectItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="FrameworkElement">
            <Setter Property="Canvas.Left" Value="{Binding X}" />
            <Setter Property="Canvas.Top" Value="{Binding Y}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Fill="Black" Height="{Binding Height}" Width="{Binding Width}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl></code>
Copier après la connexion

Méthode alternative

En tant que variante, vous pouvez utiliser RenderTransform dans le modèle rectangulaire pour localiser dynamiquement le rectangle:

Conclusion

Cette méthode vous permet d'ajouter dynamiquement un rectangle de n'importe quel nombre à des toiles WPF et de les gérer via des modèles de vue de données, améliorant ainsi la flexibilité et le maintien de l'application MVVM.

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!

source:php.cn
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