【问题标题】:WPF copying wrap panelWPF 复制换行面板
【发布时间】:2016-11-04 16:32:31
【问题描述】:

如何复制 WrapPanel?

我有一个窗口,其中有 WrapPanel,里面有一些控件。我想将它复制到我的代码中,以便在同一个窗口上有 2 个或更精确的面板,但控件的名称不同。

这就是我的 XAML 的样子:

<Window x:Class="WpfApplication1.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:WpfApplication1"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <StackPanel x:Name="stackPanel" HorizontalAlignment="Left" Height="301" Margin="10,10,0,0" VerticalAlignment="Top" Width="498">
        <WrapPanel x:Name="Wrap1" Height="142" Margin="0,0,345.6,0" VerticalAlignment="Top" Width="152">
            <Button x:Name="wrap1_button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
            <Button x:Name="wrap1_button1" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
            <Label x:Name="wrap1_label" Content="Label" HorizontalAlignment="Left" VerticalAlignment="Top" Width="74"/>
        </WrapPanel>
    </StackPanel>
</Grid>

我想在第一个旁边放置另一个 WrapPanel,名为 Wrap2,控件位于 wrap2_button、wrap2_button1、wrap2_label 内。

我尝试将其插入 StackPanel 并执行类似操作:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        WrapPanel Wrap2 = Wrap1;
        stackPanel.Children.Add(Wrap2);
    }
}

但它不起作用......

【问题讨论】:

    标签: wpf wrappanel


    【解决方案1】:

    简而言之,您必须创建另一个WrapPanel,将其添加到StackPanel,并将子代添加到第二个WrapPanel。

    现在,如果您的反应是从重复中退缩,那是一种很好的本能。对于 UserControl 来说,这可能是一个很好的用例,它是一种捆绑标准 WPF 控件组以允许它们重用的方法。

    我的建议是创建一个新的UserControl,即带有您的孩子的WrapPanel,然后将该新UserControl 的2 个实例添加到您窗口中的StackPanel。

    Here 是指向 UserControl 类的备注的链接,其中包含创建您自己的自定义控件的一些注意事项。

    【讨论】:

    • 谢谢,我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2011-07-11
    相关资源
    最近更新 更多