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等命名空间 –