テンプレートを作成して多くの場所で使用する必要があるシナリオがあります。
例えば :
<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 : このようなテンプレートを数百個作成したいので、ユーザー コントロールを使用することはできません。
前もって感謝します。