我有一个网格,我想在几个地方分享,网格有几个控件(文本框,标签,文本块和按钮)。我将它放在我的ResourceDictionary中,如下所示:
<Grid Background="LightGray" x:Key="gridShare">
<!-- other controls here -->
</Grid>
但是当我在不止一个地方使用它时,我得到一个例外:
“指定的元素已经是另一个元素的逻辑子元素。首先断开它。”
这是有道理的,所以我想知道是否还有其他方法可以达到这个目的。
提前致谢。
答案 0 :(得分:3)
如果我正确理解你要做的事情(在多个地方展示完全相同的复合控件),你可以将网格放在ControlTemplate
并将其应用到ContentControl
s:< / p>
在ResourceDictionary中:
<ControlTemplate x:Key="frequentlyUsedTemplate">
<Grid>
[...]
</Grid>
</ControlTemplate>
在UserControl中:
<ContentControl Content="[...]" Template="{StaticResource frequentlyUsedTemplate}"/>
答案 1 :(得分:1)
您要做的是使用此模板创建自定义控件,然后使用此自定义控件的实例而不是Grid本身。或者创建一个UserControl并使用它的实例。