[英]StackPanels in WrapPanel WPF
目標是創建這樣的布局。
我來自iOS開發並且是WPF開發的新手,所以我的想法是轉到具有iOS的4種多媒體元素的StackViews的CollectionViews,但是我知道WPF的工作原理與iOS截然不同。 因此,我將在WPF中使用StackPanels和WrapPanels,如果我的解決方案不正確,請給我一個更好的解決方案。
<Window x:Class="WPF_MultiViewer.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPF_MultiViewer"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<WrapPanel>
<StackPanel x:Name="MyStackPanel">
<StackPanel Orientation="Horizontal">
<Button Height="100" Width="80">Button1</Button>
<Button Height="100" Width="80">Button2</Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Button Height="100" Width="80">Button1</Button>
<Button Height="100" Width="80">Button2</Button>
</StackPanel>
</StackPanel>
</WrapPanel>
</Grid>
</Window>
我知道,如果我要對其進行硬編碼並復制粘貼12次,那么它將起作用,但問題是我想創建一個模板,然后動態創建它,例如在一列中動態創建12次4個堆棧面板。 為了輕松控制和維護它,如何在WPF中實現它?
給您一個使用示例:
<ItemsControl x:Name="Stacks" Grid.Column="0" ItemsSource="{Binding example}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Whatever you want"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Eaxmple}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
在WPF中,您可以使用MVVM(模型-視圖-視圖模型)模式。 如果要動態創建元素,則還可以在wpf中使用一個名為“ Prism”的庫。 https://www.c-sharpcorner.com/article/how-to-add-the-dynamic-control-in-to-the-view-from-view-mode/是一個小教程,介紹了如何創建運行時的元素。
根據您的要求,我將使用網格,並且ViewModel可以為定義的行和列動態創建元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.