SILVERLIGHT datagrid 技巧

    技术2025-03-04  42

    (一)文字居中:

     

    样式文件:<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,0,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>

     

    最新回复(0)