【问题标题】:How do I get children of the a parent element如何获取父元素的子元素
【发布时间】:2013-06-13 05:03:02
【问题描述】:

如何获取父元素的子元素?

我试过这样: (block.Parent as FrameworkElement).ChildrenChildren 没有FrameworkElements 的属性

【问题讨论】:

  • 这取决于你的父对象的类型。如果它类似于 Stackpanel,您可以检查 Children-Property。一些元素没有像 TextBlock 这样的 Child-Elements。例如,一个 Button 有一个 Content-Property,它可以是任何东西(例如 Stackpanel)
  • @Tomtom 事情是父母可以是任何类型..
  • 如果有多个孩子,可能是Panel。所以尝试将 Parent 转换为 Panel 而不是 FrameworkElement。
  • @FlorianGl 它并不总是一个面板..

标签: c# wpf xaml windows-phone-8


【解决方案1】:

使用classVisualTreeHelper.GetChild方法

for(var i = 0; i < VisualTreeHelper.GetChildCount(element); i++)
{
   var child = VisualTreeHelper.GetChild(element, i);
   ...
}

该页面上也提供了一个示例。

【讨论】:

  • 谢谢,我该如何添加到那些孩子身上? (将元素添加到另一个元素的父元素?)
  • 如果是面板只能添加,否则要替换子项。
  • @FlorianGl 我该如何替换孩子?
  • ((ContentControl)object).Content = newContent;
  • @FlorianGl 对象应该是孩子还是父母?内容是什么? (我可以用网格替换文本块吗?)
【解决方案2】:

我猜你有一些Panel 作为子元素的容器。所以你需要强制转换为`Panel。

(block.Parent as Panel).Children 

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 2018-02-23
    • 1970-01-01
    • 2013-08-28
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多