Wpf 复制包装面板

Wpf 复制包装面板,wpf,wrappanel,Wpf,Wrappanel,如何复制包装纸 我有一个窗口,里面有一些控件。我想把它复制到我的代码中,这样我就可以在同一个窗口上有两个或更多外观精确的面板,但控件的名称不同 这就是我的XAML的样子: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winf

如何复制包装纸

我有一个窗口,里面有一些控件。我想把它复制到我的代码中,这样我就可以在同一个窗口上有两个或更多外观精确的面板,但控件的名称不同

这就是我的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
,将其添加到
StackPanel
,并将子项添加到第二个
WrapPanel

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

我的建议是创建一个新的
UserControl
,它是一个
WrapPanel
和您的孩子,然后在窗口中的
StackPanel
中添加该新
UserControl
的两个实例


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

谢谢,我来看看。
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

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