Dans les applications WPF, vous devrez peut-être ajouter dynamiquement un ensemble de rectangles en fonction des données. Ceci peut être implémenté par mode Model-View-View Model (MVVM).
Considérons un modèle de vue, qui contient une collection rectangulaire d'un résumé indiqué par l'objet
:
RectItem
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; } = new ObservableCollection<RectItem>(); }
Canvas
pour afficher cette collection: ItemsPanel
ItemsControl
<ItemsControl ItemsSource="{Binding RectItems}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Canvas /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemContainerStyle> <Style TargetType="ContentPresenter"> <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>
RenderTransform
<ItemsControl ItemsSource="{Binding RectItems}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Canvas /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <Rectangle Fill="Black" Height="{Binding Height}" Width="{Binding Width}"> <Rectangle.RenderTransform> <TranslateTransform X="{Binding X}" Y="{Binding Y}" /> </Rectangle.RenderTransform> </Rectangle> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>
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!