WPF MVVMモードでは、Canvasに長方形を追加
solution
viewmodelを作成します。これには、長方形リストの抽象表現が含まれています。MainWindowで、長方形の容器としてキャンバスを作成します。
viewmodelのコレクションを<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>の属性にバインドします。これにより、コレクション内の各アイテムに長方形が自動的に生成されます。
各長方形のアイテムのxおよびy属性に従って、スタイルバインディング、
および属性を設定することを選択できます。
<code class="language-xml"><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></code>スタイルが環境(UWPなど)にバインドされている場合、長方形のテンプレートでレンダリング変換を使用できます。 この方法により、実行中の長方形の数に関係なく、ビューモデルデータデータの長方形を動的に追加および表示できます。
以上がMVVMを使用してWPFキャンバスに長方形を動的に追加する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。