未检测到安装的组件。 元素已经是另一个元素的孩子

在App.xaml中,我添加了一个button的应用程序资源:

<Application.Resources> <Button x:Key="MyButton"/> </Application.Resources> 

MainPage.xaml.cs ,我尝试在我的网格中以编程方式添加此button。

  Button btn = (Button)Application.Current.Resources["MyButton"]; myGrid.Children.Add(btn); 

但是它会给出这样的错误:

No installed components were detected. Element is already the child of another element.

在MainPage.xaml中:

  <Grid x:Name="myGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> </Grid> 

我不知道我在做什么错。

谢谢。

Solutions Collecting From Web of "未检测到安装的组件。 元素已经是另一个元素的孩子"

您不能添加已经是另一个元素的子元素。 这就像你的孩子不能成为另一个男人的孩子。

如果您使用您在应用程序资源中定义的控件的多个实例,则通常会引发此异常。 如果是这样的话,你应该这样做:

 <Button x:Key="MyButton" x:Shared="false"/> 

编辑:看来WInRT不支持x:共享属性。

有一个解决方法使用ControlTemplates: http : //www.gdomc.com/0428/binding-the-content-property-of-a-contentcontrol-in-winrt/