WPF嵌套用户控件
我构建了一个WPF用户控件,其中包含一个带有自定义弹出窗口的组合框,其中包含一个用户控件。内部控件(弹出窗口中的控件)具有一些属性,我希望在主用户控件中公开这些属性,以便主机页可以读写内部控件 我做这件事有困难是我做错了什么,还是我所做的是不明智的WPF嵌套用户控件,wpf,user-controls,Wpf,User Controls,我构建了一个WPF用户控件,其中包含一个带有自定义弹出窗口的组合框,其中包含一个用户控件。内部控件(弹出窗口中的控件)具有一些属性,我希望在主用户控件中公开这些属性,以便主机页可以读写内部控件 我做这件事有困难是我做错了什么,还是我所做的是不明智的 关于Christian Andersen您可以尝试使用此 public static IEnumerable<T> FindVisualChildren<T>(this DependencyObject depObj) whe
关于Christian Andersen您可以尝试使用此
public static IEnumerable<T> FindVisualChildren<T>(this DependencyObject depObj) where T : DependencyObject
{
if (depObj == null) yield break;
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
var child = VisualTreeHelper.GetChild(depObj, i);
var children = child as T;
if (children != null)
{
yield return children;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
公共静态IEnumerable FindVisualChildren(此DependencyObject depObj),其中T:DependencyObject
{
如果(depObj==null)产量中断;
for(var i=0;i
我如何使用它
var uc = (TabItem)sender;
foreach (TextBlock textBlock in uc.FindVisualChildren<TextBlock>())
{
textBlock.Foreground = Brushes.WhiteSmoke;
}
var uc=(TabItem)发送方;
foreach(uc.FindVisualChildren()中的TextBlock TextBlock)
{
textBlock.Foreground=brush.WhiteSmoke;
}
您的用户控件应该能够公开这些属性并将它们传递给内部控件。。。介意显示一些代码吗?您想公开什么类型的属性?您可以利用依赖项属性的帮助。如果可以的话,请分享你的代码。你能详细说明一下你遇到的麻烦吗?如果你没有解释你所尝试的方法是如何无效的,你就很难提供帮助。