隔行换色,鼠标单击,悬浮样式都有
先看效果:
代码:
<
DataGrid
AutoGenerateColumns
="False"
Name
="dataGrid1"
VerticalAlignment
="Top"
CanUserSortColumns
="False"
Width
="660"
Margin
="5"
IsReadOnly
="True"
CanUserResizeColumns
="False"
CanUserResizeRows
="False"
SelectionMode
="Single"
CanUserReorderColumns
="False"
AlternationCount
="2"
RowHeaderWidth
="0"
CanUserAddRows
="False"
>
<
DataGrid.Columns
>
<
DataGridTextColumn
Header
="名称"
Width
="150"
Binding
="{Binding Name}"
/>
<
DataGridTextColumn
Header
="最新价"
Width
="120"
Binding
="{Binding Zxj}"
/>
<
DataGridTextColumn
Header
="涨跌"
Width
="120"
Binding
="{Binding Zd}"
/>
<
DataGridTextColumn
Header
="涨幅"
Width
="130"
Binding
="{Binding Zf}"
/>
<
DataGridTextColumn
Header
="短线强势股"
Width
="140"
Binding
="{Binding Dxqsg}"
/>
</
DataGrid.Columns
>
</
DataGrid
>
Style代码:
<
ResourceDictionary
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
>
<
Style
TargetType
="DataGrid"
>
<!--
网格线颜色
-->
<
Setter
Property
="CanUserResizeColumns"
Value
="false"
/>
<
Setter
Property
="Background"
Value
="#E6DBBB"
/>
<
Setter
Property
="BorderBrush"
Value
="#d6c79b"
/>
<
Setter
Property
="HorizontalGridLinesBrush"
>
<
Setter.Value
>
<
SolidColorBrush
Color
="#d6c79b"
/>
</
Setter.Value
>
</
Setter
>
<
Setter
Property
="VerticalGridLinesBrush"
>
<
Setter.Value
>
<
SolidColorBrush
Color
="#d6c79b"
/>
</
Setter.Value
>
</
Setter
>
</
Style
>
<!--
标题栏样式
-->
<!--
<Style TargetType="DataGridColumnHeader" > <Setter Property="Width" Value="50"/> <Setter Property="Height" Value="30"/> <Setter Property="FontSize" Value="14" /> <Setter Property="Background" Value="White" /> <Setter Property="FontWeight" Value="Bold"/> </Style>
-->
<
Style
TargetType
="DataGridColumnHeader"
>
<
Setter
Property
="SnapsToDevicePixels"
Value
="True"
/>
<
Setter
Property
="MinWidth"
Value
="0"
/>
<
Setter
Property
="MinHeight"
Value
="28"
/>
<
Setter
Property
="Foreground"
Value
="#323433"
/>
<
Setter
Property
="FontSize"
Value
="14"
/>
<
Setter
Property
="Cursor"
Value
="Hand"
/>
<
Setter
Property
="Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
="DataGridColumnHeader"
>
<
Border
x:Name
="BackgroundBorder"
BorderThickness
="0,1,0,1"
BorderBrush
="#e6dbba"
Width
="Auto"
>
<
Grid
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
="*"
/>
</
Grid.ColumnDefinitions
>
<
ContentPresenter
Margin
="0,0,0,0"
VerticalAlignment
="Center"
HorizontalAlignment
="Center"
/>
<
Path
x:Name
="SortArrow"
Visibility
="Collapsed"
Data
="M0,0 L1,0 0.5,1 z"
Stretch
="Fill"
Grid.Column
="2"
Width
="8"
Height
="6"
Fill
="White"
Margin
="0,0,50,0"
VerticalAlignment
="Center"
RenderTransformOrigin
="1,1"
/>
<
Rectangle
Width
="1"
Fill
="#d6c79b"
HorizontalAlignment
="Right"
Grid.ColumnSpan
="1"
/>
<!--
<TextBlock Background="Red"> <ContentPresenter></ContentPresenter></TextBlock>
-->
</
Grid
>
</
Border
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
<
Setter
Property
="Height"
Value
="25"
/>
</
Style
>
<!--
行样式触发
-->
<!--
背景色改变必须先设置cellStyle 因为cellStyle会覆盖rowStyle样式
-->
<
Style
TargetType
="DataGridRow"
>
<
Setter
Property
="Background"
Value
="#F2F2F2"
/>
<
Setter
Property
="Height"
Value
="25"
/>
<
Setter
Property
="Foreground"
Value
="Black"
/>
<
Style.Triggers
>
<!--
隔行换色
-->
<
Trigger
Property
="AlternationIndex"
Value
="0"
>
<
Setter
Property
="Background"
Value
="#e7e7e7"
/>
</
Trigger
>
<
Trigger
Property
="AlternationIndex"
Value
="1"
>
<
Setter
Property
="Background"
Value
="#f2f2f2"
/>
</
Trigger
>
<
Trigger
Property
="IsMouseOver"
Value
="True"
>
<
Setter
Property
="Background"
Value
="LightGray"
/>
<!--
<Setter Property="Foreground" Value="White"/>
-->
</
Trigger
>
<
Trigger
Property
="IsSelected"
Value
="True"
>
<
Setter
Property
="Foreground"
Value
="Black"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>
<!--
单元格样式触发
-->
<
Style
TargetType
="DataGridCell"
>
<
Setter
Property
="Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
="DataGridCell"
>
<
TextBlock
TextAlignment
="Center"
VerticalAlignment
="Center"
>
<
ContentPresenter
/>
</
TextBlock
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
<
Style.Triggers
>
<
Trigger
Property
="IsSelected"
Value
="True"
>
<!--
<Setter Property="Background" Value="White"/> <Setter Property="BorderThickness" Value="0"/>
-->
<
Setter
Property
="Foreground"
Value
="Black"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>
</
ResourceDictionary
>
本文同步发表在 http://xiaogangblog.com