我有一个场景,我需要创建模板并在很多地方使用它。
例如 :
<Grid VerticalAlignment="Top" Background="White">
<TextBlock Foreground="Black" FontSize="24" FontWeight="SemiBold" Margin="12 12 12 6"/>
<Border Background="DarkGray" HorizontalAlignment="Left" Height="2" Width="170" Margin="12 0 0 12"/>
<Border Background="DarkGray" HorizontalAlignment="Right" Height="2" Width="170" Margin="12 0 0 12"/>
我试过这样的事情:
<ContentPresenter x:Key="specificationTemplate1">
<Grid VerticalAlignment="Top" Background="White">
<TextBlock Foreground="Black" FontSize="24" FontWeight="SemiBold" Margin="12 12 12 6"/>
<Border Background="DarkGray" HorizontalAlignment="Left" Height="2" Width="170" Margin="12 0 0 12"/>
<Border Background="DarkGray" HorizontalAlignment="Right" Height="2" Width="170" Margin="12 0 0 12"/>
</Grid>
</ContentPresenter>
Grid grdSpecificationTemplate = (App.Current.Resources["specificationTemplate1"] as ContentPresenter).Content as Grid;
MainGird.Children.Add(grdSpecificationTemplate);
我面临的问题是,它第一次工作正常,当我返回并再次导航时,它抛出异常“该元素已经是另一个元素的子元素”。
请建议我这是正确的做法还是有其他方法。
PS:我想创建几百个这样的模板,所以我不能使用用户控制。
提前致谢。