繁体   English   中英

WrapPanel WPF中的StackPanels

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM