1
有誰知道如何在Visual Studio toolwindow中正確地設置WPF ListView的樣式,以便它能正確響應活動的Visual Studio主題?如何將Visual Studio主題應用於WPF ListView?
我想實現像在VS任務列表工具窗口:
我發現這種風格VsResourceKeys.ThemedDialogListViewItemGridStyleKey但它不會產生這樣的事情。
這是我取得了迄今:
幾乎所有的東西是錯誤的:
- 網格視圖頭部是灰色的,它應該是黑色的。
- 網格視圖列標題文本是黑色的,它應該是白色的。
- 項目未被選中時項目文本爲藍色,並且應爲白色。
- 等等
列表視圖在XAML定義如下:
<ListView
x:Name="listDetails"
Grid.Row="4"
Height="150"
Style="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewDefaultStyleKey}}"
>
<ListView.View>
<GridView>
<GridViewColumn
Header="Property"
Width="150"
DisplayMemberBinding="{Binding PropertyName}"
HeaderContainerStyle="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewGridViewColumnHeaderDefaultStyleKey}}"
/>
<GridViewColumn
Header="Type"
Width="150"
DisplayMemberBinding="{Binding TypeName}"
HeaderContainerStyle="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewGridViewColumnHeaderDefaultStyleKey}}"
/>
<GridViewColumn
Header="Left Value"
Width="150"
DisplayMemberBinding="{Binding LeftValue}"
HeaderContainerStyle="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewGridViewColumnHeaderDefaultStyleKey}}"
/>
<GridViewColumn
Header="Right Value"
Width="150"
DisplayMemberBinding="{Binding RightValue}"
HeaderContainerStyle="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewGridViewColumnHeaderDefaultStyleKey}}"
/>
</GridView>
</ListView.View>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource ResourceKey={x:Static theming:StyleKeys.ThemedListViewItemDefaultStyleKey}}" />
</ListView.ItemContainerStyle>
</ListView>
的風格定義如下:
<Style
x:Key="{x:Static theming:StyleKeys.ThemedListViewDefaultStyleKey}"
TargetType="{x:Type ListView}"
>
<Setter Property="Background" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowBackgroundBrushKey}}" />
<Setter Property="BorderThickness" Value="0" />
</Style>
<Style
x:Key="{x:Static theming:StyleKeys.ThemedListViewItemDefaultStyleKey}"
TargetType="{x:Type ListViewItem}"
BasedOn="{StaticResource ResourceKey={x:Static vsshell:VsResourceKeys.ThemedDialogListViewItemGridStyleKey}}"
>
</Style>
<Style
x:Key="{x:Static theming:StyleKeys.ThemedListViewGridViewColumnHeaderDefaultStyleKey}"
TargetType="{x:Type GridViewColumnHeader}"
>
<Setter Property="Background" Value="{DynamicResource {x:Static vsui:EnvironmentColors.ToolWindowBackgroundBrushKey}}" />
</Style>
有沒有默認的樣式來實現正確的行爲?或者有關樣式中需要更改的文檔?
請分享像主題,vsshell,vsui等命名空間 –