Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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
C# WPF:将usercontrol添加到窗口_C#_Wpf_User Controls - Fatal编程技术网

C# WPF:将usercontrol添加到窗口

C# WPF:将usercontrol添加到窗口,c#,wpf,user-controls,C#,Wpf,User Controls,首先,我是WPF和C的新手,所以我遇到的问题很容易解决。但我现在有点困了 让我解释一下我的问题 我有一个WPF窗口和两个usercontrols(Controls和ContentDisplayer) usercontrol控件(包含一些按钮)添加到窗口的XAML中。 这里没什么特别的 Window.XAML <nv:Controls/> 所以真正的问题是:如何通过按下另一个usercontrol中的按钮将usercontrol添加到窗口 谢谢 控件中的墨粉会暴露一个事件,当您要添加

首先,我是WPF和C的新手,所以我遇到的问题很容易解决。但我现在有点困了

让我解释一下我的问题

我有一个WPF窗口和两个usercontrols(Controls和ContentDisplayer)

usercontrol控件(包含一些按钮)添加到窗口的XAML中。 这里没什么特别的

Window.XAML

<nv:Controls/>
所以真正的问题是:如何通过按下另一个usercontrol中的按钮将usercontrol添加到窗口

谢谢


控件中的墨粉会暴露一个事件,当您要添加新控件时,会触发该事件

public event EventHandler AddControl;

private void RaiseAddControl()
{
    if (AddControl!= null)
    {
        AddControl(this, EventArgs.Empty);
    }
}
现在将该事件放入您的窗口中

yourControl.AddControl += ContactChanged

在您的窗口中,听起来您需要将事件添加到控件的实例中

<local:ContentDisplayer>
...
  <nv:Controls AddControl="ContactChanged"/>
...

...
...
然后,在ContactChanged事件处理程序中,您可以实例化一个新控件,并将其添加到您正在使用的任何集合中,就像上面的Button_ContactChanged事件处理程序中一样


如果需要进一步说明,请告诉我。

在窗口顶部的xaml添加

xmlns:d="clr-namespace:SomeNamespace.Usercontrols"
如果已经存在这些名称空间,则可以从智能列表中选择控件的名称空间

然后,将控件类型放置在何处:

<d:yourusercontrolhere params />


你的用户控件可以添加到那里。

我不知道你想做什么,你的例子

因此,您有一个如下定义的控件:

public partial class somecontrolname : UserControl
使用相应的Xaml文件

要将它添加到窗口的代码中,您需要做的就是首先在窗口中需要一个LayoutRoot,比如网格控件,然后

[mylayoutcontrol].Children.Add(新建somecontrolname())


也许我不知道你想做什么,你的示例代码对我来说没有多大意义,看起来你想加载xaml源文件

谷歌对这个问题的排名很高,但没有公认的答案。试着回答这个问题。
public partial class somecontrolname : UserControl