在App.xaml中,我添加了一个带有按钮的应用程序资源:
<Application.Resources>
<Button x:Key="MyButton"/>
</Application.Resources>
在MainPage.xaml.cs
中,我尝试以编程方式在我的网格中添加此按钮。
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>
我不知道自己做错了什么。
感谢。
答案 0 :(得分:0)
您无法添加已经是另一个元素的子元素。这就像你的孩子不能成为另一个男人的孩子。
答案 1 :(得分:0)
如果您正在使用在应用程序资源中定义的多个控件实例,则通常会抛出此异常。如果是这种情况,你应该这样做:
<Button x:Key="MyButton" x:Shared="false"/>
编辑:似乎WInRT不支持x:shared属性。
使用ControlTemplates有一种解决方法:http://www.gdomc.com/0428/binding-the-content-property-of-a-contentcontrol-in-winrt/