微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SILVERLIGHT datagrid 技巧

(一)文字居中:

 

样式文件:<ResourceDictionary

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"

xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"

xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

   mc:Ignorable="d">

<SolidColorBrush x:Key="lineColor" Color="#FFFF6500"/>

   

<!-- Resource dictionary entries should be defined here. -->

<Style x:Key="DataGridHeaderStyle" targettype="Primitives:DataGridColumnHeader">

                <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>

                <Setter Property="FontSize" Value="14.667"/>

                <Setter Property="SeparatorBrush" Value="{StaticResource lineColor}"/>

                <Setter Property="Background" Value="{StaticResource lineColor}"/>

                <Setter Property="BorderBrush" Value="{StaticResource lineColor}"/>

<Setter Property="FontWeight" Value="Bold" />

 

      </Style>

    <Style x:Key="DataGridCellStyle" targettype="data:DataGridCell">

                <Setter Property="HorizontalContentAlignment" Value="Center" ></Setter>

                <Setter Property="FontSize" Value="14.667"/>

 

 </Style>

 

引用样式:

<local:AutoFillDataGrid AutoGenerateColumns="False"  x:Name="DataGrid1" GridLinesVisibility="All" CellStyle="{StaticResource DataGridCellStyle}"    RowDetailsVisibilityMode="VisibleWhenSelected" Height="336" ColumnHeaderStyle="{StaticResource DataGridHeaderStyle}" HorizontalGridLinesBrush="{StaticResource lineColor}" VerticalGridLinesBrush="{StaticResource lineColor}" BorderBrush="{StaticResource lineColor}" RowBackground="#33C3FF00">

 

(二)列头样式

 

<ResourceDictionary

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"

xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

  xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"

   mc:Ignorable="d">

<SolidColorBrush x:Key="lineColor" Color="#FFFF6500"/>

   

<!-- Resource dictionary entries should be defined here. -->

 

    <Style x:Key="DataGridCellStyle" targettype="data:DataGridCell">

                <Setter Property="HorizontalContentAlignment" Value="Center" ></Setter>

                <Setter Property="FontSize" Value="14.667"/>

 

            </Style>

    <Style x:Key="DataGridColumnHeaderStyle1" targettype="sdk:DataGridColumnHeader">

     <Setter Property="HorizontalContentAlignment" Value="Center"/>

     <Setter Property="FontSize" Value="14.667"/>

     <Setter Property="SeparatorBrush" Value="{StaticResource lineColor}"/>

     <Setter Property="Background" Value="{StaticResource lineColor}"/>

     <Setter Property="BorderBrush" Value="{StaticResource lineColor}"/>

     <Setter Property="FontWeight" Value="Bold" />

<Setter Property="Template">

<Setter.Value>

<ControlTemplate targettype="sdk:DataGridColumnHeader">

<Grid x:Name="Root">

<Grid.ColumnDeFinitions>

<ColumnDeFinition/>

<ColumnDeFinition Width="Auto"/>

</Grid.ColumnDeFinitions>

<vsm:visualstatemanager.VisualStateGroups>

<vsm:VisualStateGroup x:Name="CommonStates">

<vsm:VisualStateGroup.Transitions>

<vsm:VisualTransition GeneratedDuration="00:00:0.1"/>

</vsm:VisualStateGroup.Transitions>

<vsm:VisualState x:Name="normal"/>

<vsm:VisualState x:Name="MouSEOver">

<Storyboard>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Fill).Color" To="#FF448DCA"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[3].Color" To="#7FFFFFFF"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[2].Color" To="#CCFFFFFF"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[1].Color" To="#F2FFFFFF"/>

</Storyboard>

</vsm:VisualState>

<vsm:VisualState x:Name="pressed">

<Storyboard>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Fill).Color" To="#FF448DCA"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[0].Color" To="#D8FFFFFF"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[1].Color" To="#C6FFFFFF"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[2].Color" To="#8CFFFFFF"/>

<ColorAnimation Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Fill).(GradientStops)[3].Color" To="#3FFFFFFF"/>

</Storyboard>

</vsm:VisualState>

</vsm:VisualStateGroup>

<vsm:VisualStateGroup x:Name="SortStates">

<vsm:VisualStateGroup.Transitions>

<vsm:VisualTransition GeneratedDuration="00:00:0.1"/>

</vsm:VisualStateGroup.Transitions>

<vsm:VisualState x:Name="Unsorted"/>

<vsm:VisualState x:Name="SortAscending">

<Storyboard>

<DoubleAnimation Duration="0" Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" To="1.0"/>

</Storyboard>

</vsm:VisualState>

<vsm:VisualState x:Name="SortDescending">

<Storyboard>

<DoubleAnimation Duration="0" Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" To="1.0"/>

<DoubleAnimation Duration="0" Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="(RenderTransform).ScaleY" To="-.9"/>

</Storyboard>

</vsm:VisualState>

</vsm:VisualStateGroup>

</vsm:visualstatemanager.VisualStateGroups>

<Rectangle x:Name="BackgroundRectangle" Fill="#FF1F3B53" Stretch="Fill" Grid.ColumnSpan="2" d:IsHidden="True"/>

<Rectangle x:Name="BackgroundGradient" Stretch="Fill" Grid.ColumnSpan="2">

<Rectangle.Fill>

<LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0">

<GradientStop Color="#FFE4F37C" Offset="0.015"/>

<GradientStop Color="#FFE4F37C" Offset="0.894"/>

<GradientStop Color="#FFFF2601" Offset="0.919"/>

<GradientStop Color="#FFFF2500" Offset="1"/>

</LinearGradientBrush>

</Rectangle.Fill>

</Rectangle>

<Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">

<Grid.ColumnDeFinitions>

<ColumnDeFinition/>

<ColumnDeFinition Width="Auto"/>

</Grid.ColumnDeFinitions>

<ContentPresenter Cursor="{TemplateBinding Cursor}" Content="{TemplateBinding Content}"/>

<Path x:Name="SortIcon" Fill="#FF444444" Stretch="Uniform" HorizontalAlignment="Left" Margin="4,0" VerticalAlignment="Center" Width="8" Opacity="0" RenderTransformOrigin=".5,.5" Grid.Column="1" Data="F1 M -5.215,6.099L 5.215,6.099L 0,0L -5.215,6.099 Z ">

<Path.RenderTransform>

<ScaleTransform ScaleX=".9" ScaleY=".9"/>

</Path.RenderTransform>

</Path>

</Grid>

<Rectangle x:Name="VerticalSeparator" Fill="{TemplateBinding SeparatorBrush}" VerticalAlignment="Stretch" Width="1" Visibility="{TemplateBinding SeparatorVisibility}" Grid.Column="1"/>

</Grid>

</ControlTemplate>

</Setter.Value>

</Setter>

 

    </Style>

 

 

</ResourceDictionary>

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐