【问题标题】:WPF & XAML Drag and Drop all children from 1 grid cell to anotherWPF 和 XAML 将所有子项从 1 个网格单元拖放到另一个
【发布时间】:2025-12-29 02:40:11
【问题描述】:

我有一个网格,每个单元格在运行时从 XAML(单独)文件加载,其中每个单元格包含以下一般形式的子元素:

<Border Name="R1C1Border">
  <Grid Name="R1C1Grid>
    <TextBlock Name="R1C1TextBlock1">blah blah blah</TextBlock> 
    <TextBlock Name="R1C1TextBlock2">blah blah blah</TextBlock>
    <Polygon.../>
    <Ellipse... ></Ellipse>
    <Path... etc.../>
    <Button></Button>
  </Grid>
</Border> 

我想实现拖放行为以将边框及其所有子项拖到另一个单元格,以允许用户在运行时自定义网格。我可以使用 FindName、GetChildren()、Child =、TypeOf 等复制代码后面的内容。但如果可能的话,我真的很想通过拖放来解决这个问题。我已经使用 Ellipse 和 ListBox 遵循了 MSDN 基本拖放操作,但我认为当我尝试在这种情况下应用它时,嵌套会在工作中发挥作用。我已经为 XAML 和 WPF 购买了几本书,并且拖放没有出现在索引中。

【问题讨论】:

    标签: wpf xaml drag


    【解决方案1】:

    你可以做你现在正在做的同样的事情,只是在拖动开始时添加另一个步骤:

    从您的控件中制作 VisaulBrush(您拖动的那个,及其所有子项)。

    然后打开一个弹出窗口或一个窗口,将画笔作为它的背景。 移动鼠标时再添加一步:

    更新弹出/窗口位置。

    【讨论】: