Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF嵌套用户控件_Wpf_User Controls - Fatal编程技术网

WPF嵌套用户控件

WPF嵌套用户控件,wpf,user-controls,Wpf,User Controls,我构建了一个WPF用户控件,其中包含一个带有自定义弹出窗口的组合框,其中包含一个用户控件。内部控件(弹出窗口中的控件)具有一些属性,我希望在主用户控件中公开这些属性,以便主机页可以读写内部控件 我做这件事有困难是我做错了什么,还是我所做的是不明智的 关于Christian Andersen您可以尝试使用此 public static IEnumerable<T> FindVisualChildren<T>(this DependencyObject depObj) whe

我构建了一个WPF用户控件,其中包含一个带有自定义弹出窗口的组合框,其中包含一个用户控件。内部控件(弹出窗口中的控件)具有一些属性,我希望在主用户控件中公开这些属性,以便主机页可以读写内部控件

我做这件事有困难是我做错了什么,还是我所做的是不明智的


关于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;
}

您的用户控件应该能够公开这些属性并将它们传递给内部控件。。。介意显示一些代码吗?您想公开什么类型的属性?您可以利用依赖项属性的帮助。如果可以的话,请分享你的代码。你能详细说明一下你遇到的麻烦吗?如果你没有解释你所尝试的方法是如何无效的,你就很难提供帮助。