在 wpf 中运行时将控件移动到另一个分组框

本文关键字:另一个 移动 控件 wpf 运行时 | 更新日期: 2023-09-27 18:34:18

我有两个分组框。组框 1 和组框 2。是否可以在运行时将GroupBox1内的控件移动到GroupBox2

例如,在下面的xaml文件中,如果我想在运行时将label1移动到GroupBox1 GroupBox2。我应该怎么做?

<Grid>
    <GroupBox Name="GroupBox1" HorizontalAlignment="Left" Height="400" VerticalAlignment="Top" Width="330" >
                <StackPanel Orientation="Horizontal">
                        <Label Content="MyContent" x:Name="label1"  FontSize="16"/>
                        <Image Name="ImageName1"  VerticalAlignment="Bottom" Width="62" Height="42"/>
                </StackPanel>
    </Groupbox>
    <GroupBox Name="GroupBox2" HorizontalAlignment="Left" Height="400" VerticalAlignment="Top" Width="330" >
                <StackPanel Orientation="Horizontal">
                        <Label Content="MyContent" x:Name="label2" />
                        <Image Name="ImageName2"  VerticalAlignment="Bottom" Width="62" Height="42"/>
                </StackPanel>
    </Groupbox>
</Grid>

注意: 我确实知道我可以在运行时通过更改控件的边距值来转换控件的位置,如下所示:

test.Margin = new Thickness(0, -5, 0, 0);

在 wpf 中运行时将控件移动到另一个分组框

只需将其从一个StackPanel中删除并放入另一个。

stackpanel1.Children.RemoveAt(stackpanel1.Children.IndexOf(label1));
stackpanel2.Children.Add(label1);