0

使用したグローバル スタイル (式 dark) を失うことなく、wpf リストビューの列ヘッダーの可視性を依存関係プロパティにバインドしたいと考えています。

スタイルを定義しました:

<Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
   <Setter Property="Visibility" Value="{Binding ColumnHeaderVisibility}" />
</Style>

次に、次のように適用しました。

<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">

私は表現暗いテーマを使用しています。MergedDictionaries を介してインポートされ、実行時に変更できます。

列ヘッダーが表示されていない場合は、すべて問題ありません。ただし、ColumnHeaderContainerStyle を設定すると式のダーク スタイルがオーバーライドされるため、表示される場合はデフォルトの Windows スタイルで表示されます。

実行時にスタイルを変更する必要があるため、すべてのリソースが動的であるため、元のスタイルで「BasedOn」を使用することはできません。BasedOn は静的リソースでのみ機能し、実行時に変更することはできません。

他に何ができますか?

4

1 に答える 1

1

これが機能するかどうかはわかりませんが、デフォルトのスタイルに基づいてスタイルを試すことができます。

<Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"  BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
   <Setter Property="Visibility" Value="{Binding ColumnHeaderVisibility}" />
</Style>
于 2012-04-25T15:29:21.997 に答える