私は変態だと知っていますが、私は非常に興味があります。カスタムコントロールを作成して基本クラススタイルを最初に見つけ出し、それが自分のものです。 私が尋ねる理由:カスタムアイテムテンプレートを持つTreeViewの派生コントロールがあります。私はそれらのテンプレートを適用し、私は基本スタイルを持っています。後で私はいくつかのカラーパレットを適用するかもしれません。最後のステップで私は問題があります。私は2つのスタイルを適用する必要があります。 PVStructuralTreeはTreeViewから派生し、コード内のリソースに挿入されるいくつかのDependencyProperty DataTemplatesを持っています。WPFスタイルと多相形
PVStructuralTreeView
- EmploeeTemplate
- ...複数のテンプレートPVStructuralTreeViewため
デフォルトのスタイル:TreeViewコントロールのための
<Style x:Key="DefaultPVStructuralTreeView" TargetType="{x:Type c:PVStructuralTreeView}" BasedOn="{StaticResource DefaultTreeView}">
<Setter Property="EmploeeTemplate"><!-- This get inserted inro Resources in code -->
<Setter.Value>
<DataTemplate DataType="{x:Type s:Emploee}">
...
</DataTemplate>
</Setter.Value>
</Setter>
... Lots of them here
</Style>
<Style TargetType="{x:Type c:PVStructuralTreeView}" BasedOn="{StaticResource DefaultPVStructuralTreeView}"/>
デフォルトスタイル(それはかなり大きいですので、私ここに投稿しません):
私はこの+同時に両方のスタイルを適用するためにいくつかの魔法(Generic.xamlから一つをテーマにした)を持っているしたいのですが、カラーtemplate.xamlファイルで<Style TargetType="{x:Type TreeView}" BasedOn="{StaticResource DefaultTreeView}"/>
:
<Style x:Key="ThemedTreeView" TargetType="{x:Type TreeView}" BasedOn="{StaticResource DefaultTreeView}">
...
</Style>
<Style TargetType="{x:Type c:PVStructuralTreeView}" BasedOn="{StaticResource ThemedTreeView}"/>
しかし、それだけでgeneric.xamlスタイルを上書きします。私はそれを追加したい。
は今、私はこの方法をやっている:
<Style x:Key="ThemedPVStructuralTreeView" TargetType="{x:Type c:PVStructuralTreeView}" BasedOn="{StaticResource DefaultPVStructuralTreeView}">
... CopyPaste from ThemedTreeView ...
</Style>
<Style TargetType="{x:Type c:PVStructuralTreeView}" BasedOn="{StaticResource ThemedPVStructuralTreeView}"/>
誰もがここでThemedTreeViewスタイルを再利用する仕方を知っていますか?
は完全に一般的なスタイルを上書きします。私は上書きしないで、その上に構築したい。私は、既存の上に構築したいときに、ThemeTreeViewスタイルをtemplate.xamlのPVStructuralTreeViewのスタイルにコピーします。コードをコピーしないでください。 –
他の2つのスタイルでスタイルを設定することはできません。 – mm8