获取父用户控件WPF C#的名称

Posted

技术标签:

【中文标题】获取父用户控件WPF C#的名称【英文标题】:Get the name of the parent user control WPF C# 【发布时间】:2013-07-11 11:55:43 【问题描述】:

我可以访问用户控件 A。我想获取有关用户控件 C 的信息。在 WPF 中有没有办法做到这一点?结构基本上就是你所看到的。用户控件 D 是功能区,C 是功能区上的选项卡,B 和 A 是 C 的内容。我似乎无法访问 C。我尝试使用 A 的 Parent 属性,但它似乎没有给出我的 C 信息。

【问题讨论】:

Parent 属性为您提供了什么? 我认为它给出了窗口或其他一些晦涩的元素。这个程序非常复杂。 你在使用 MVVM 吗?如果不是,我建议使用这种方法。通过这种方式,您可以访问neath 下的基本逻辑(视图模型),而无需尝试直接跳过控件。 你能把父窗口投射到Control C吗? +1 精美插图! :) 【参考方案1】:

尝试使用VisualTreeHelper.GetParent或使用递归函数here

【讨论】:

太棒了,我会在星期一试试。谢谢 这确实有效,但事实证明这个问题并不能解决我的问题。复选标记和 +1 以获得正确答案!谢谢【参考方案2】:

也许您可以尝试将父级转换为 UserControl C,如下所示:

(this.Parent as UserControlC).YourProperty

【讨论】:

【参考方案3】:

在 Loaded 事件处理程序中使用 Window.GetWindow(this) 方法。

public MainView()

    InitializeComponent();

    this.Loaded += new RoutedEventHandler(MainView_Loaded);


void MainView_Loaded(object sender, RoutedEventArgs e)

    Window parentWindow = Window.GetWindow(this);

    ...

【讨论】:

以上是关于获取父用户控件WPF C#的名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义用户控件 WPF、C# 中的枚举自定义属性中获取值?

c# winform 怎么获取控件

C#怎么制作用户控件

在单击时获取代码的控件名称,wpf

如何使用 WPF 用户控件关闭父窗口

C# wpf 如何实现自定义控件,布局时,大小发生变化,内部绘制的曲线跟随变化?