250 lines
10 KiB
XML
250 lines
10 KiB
XML
<ResourceDictionary
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:Main.Test">
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="/Main.Test;component/Dictionary1.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
<Style x:Key="StyledDefaultCellStyle" TargetType="DataGridCell">
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="Padding" Value="8,0" />
|
|
<Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" />
|
|
<Setter Property="FontFamily" Value="{DynamicResource FontFamily}" />
|
|
<!--<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}, Path=Foreground, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />-->
|
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
|
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type DataGridCell}">
|
|
<Grid>
|
|
<Border
|
|
Padding="{TemplateBinding Padding}"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}">
|
|
<ContentPresenter
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
|
</Border>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="Foreground" Value="{Binding SelectedRowForeground, RelativeSource={RelativeSource AncestorType={x:Type local:StyledDataGrid}}}" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
<Style x:Key="StyledDefaultRowStyle" TargetType="{x:Type DataGridRow}">
|
|
<Setter Property="BorderThickness" Value="0,0,1,0" />
|
|
<Setter Property="Background" Value="{x:Null}" />
|
|
<Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" />
|
|
<Setter Property="FontFamily" Value="{DynamicResource FontFamily}" />
|
|
<Setter Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}, Path=BorderBrush}" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="DataGridRow">
|
|
<Grid>
|
|
<Border
|
|
x:Name="border"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}" />
|
|
<SelectiveScrollingGrid>
|
|
<SelectiveScrollingGrid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</SelectiveScrollingGrid.ColumnDefinitions>
|
|
<SelectiveScrollingGrid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</SelectiveScrollingGrid.RowDefinitions>
|
|
<DataGridCellsPresenter
|
|
Grid.Column="1"
|
|
ItemsPanel="{TemplateBinding ItemsPanel}"
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
|
<DataGridDetailsPresenter
|
|
x:Name="DetailsPresenter"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
|
|
Visibility="{TemplateBinding DetailsVisibility}" />
|
|
<DataGridRowHeader
|
|
Grid.RowSpan="2"
|
|
SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"
|
|
Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
|
|
</SelectiveScrollingGrid>
|
|
<Grid
|
|
x:Name="fousIcon"
|
|
IsHitTestVisible="False"
|
|
Opacity="0"
|
|
Visibility="Collapsed">
|
|
<Path
|
|
Width="10"
|
|
Height="10"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Data="M0,0 L0,0 50,0 50,10 10,10 10,50 0,50 0,52 z"
|
|
Fill="#4BB2FF"
|
|
RenderTransformOrigin="0.5,0.5"
|
|
Stretch="Fill">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform />
|
|
<SkewTransform />
|
|
<RotateTransform Angle="0" />
|
|
<TranslateTransform />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
<Path
|
|
Width="10"
|
|
Height="10"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Top"
|
|
Data="M0,0 L0,0 50,0 50,10 10,10 10,50 0,50 0,52 z"
|
|
Fill="#4BB2FF"
|
|
RenderTransformOrigin="0.5,0.5"
|
|
Stretch="Fill">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform />
|
|
<SkewTransform />
|
|
<RotateTransform Angle="90" />
|
|
<TranslateTransform />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
<Path
|
|
Width="10"
|
|
Height="10"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Bottom"
|
|
Data="M0,0 L0,0 50,0 50,10 10,10 10,50 0,50 0,52 z"
|
|
Fill="#4BB2FF"
|
|
RenderTransformOrigin="0.5,0.5"
|
|
Stretch="Fill">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform />
|
|
<SkewTransform />
|
|
<RotateTransform Angle="180" />
|
|
<TranslateTransform />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
<Path
|
|
Width="10"
|
|
Height="10"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Bottom"
|
|
Data="M0,0 L0,0 50,0 50,10 10,10 10,50 0,50 0,52 z"
|
|
Fill="#4BB2FF"
|
|
RenderTransformOrigin="0.5,0.5"
|
|
Stretch="Fill">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform />
|
|
<SkewTransform />
|
|
<RotateTransform Angle="-90" />
|
|
<TranslateTransform />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
</Grid>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter TargetName="fousIcon" Property="Opacity" Value="1" />
|
|
<Setter Property="Foreground" Value="{Binding SelectedRowForeground, RelativeSource={RelativeSource AncestorType={x:Type local:StyledDataGrid}}}" />
|
|
<Setter TargetName="border" Property="Background" Value="{Binding SelectedRowBackground, RelativeSource={RelativeSource AncestorType={x:Type local:StyledDataGrid}}}" />
|
|
</Trigger>
|
|
<Trigger Property="DetailsVisibility" Value="Visible">
|
|
<Setter TargetName="DetailsPresenter" Property="Margin" Value="0,0,1,0" />
|
|
</Trigger>
|
|
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
<Style
|
|
x:Key="StyledRowHeaderStyle"
|
|
BasedOn="{StaticResource DefaultRowHeaderStyle}"
|
|
TargetType="DataGridRowHeader">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="DataGridRowHeader">
|
|
<Border
|
|
Background="Transparent"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="0,0,1,1">
|
|
<DockPanel LastChildFill="True">
|
|
<Border
|
|
x:Name="CheckArea"
|
|
Width="32"
|
|
DockPanel.Dock="Right"
|
|
Visibility="Collapsed">
|
|
<CheckBox
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
AutomationProperties.Name="选择行"
|
|
Focusable="True"
|
|
IsChecked="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridRow}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
|
</Border>
|
|
<Border
|
|
x:Name="Divider"
|
|
Width="1"
|
|
Background="{TemplateBinding BorderBrush}"
|
|
DockPanel.Dock="Right"
|
|
Visibility="Collapsed" />
|
|
<ContentPresenter
|
|
x:Name="Number"
|
|
Content="{Binding Header, RelativeSource={RelativeSource AncestorType=DataGridRow}}"
|
|
Margin="8,0"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Visibility="Collapsed" />
|
|
</DockPanel>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<DataTrigger Binding="{Binding ShowRowNumber, RelativeSource={RelativeSource AncestorType=local:StyledDataGrid}}" Value="True">
|
|
<Setter TargetName="Number" Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ShowCheckBox, RelativeSource={RelativeSource AncestorType=local:StyledDataGrid}}" Value="True">
|
|
<Setter TargetName="CheckArea" Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding ShowRowNumber, RelativeSource={RelativeSource AncestorType=local:StyledDataGrid}}" Value="True" />
|
|
<Condition Binding="{Binding ShowCheckBox, RelativeSource={RelativeSource AncestorType=local:StyledDataGrid}}" Value="True" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter TargetName="Divider" Property="Visibility" Value="Visible" />
|
|
</MultiDataTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style
|
|
x:Key="StyledNumberCellStyle"
|
|
BasedOn="{StaticResource StyledDefaultCellStyle}"
|
|
TargetType="DataGridCell">
|
|
<Setter Property="HorizontalContentAlignment" Value="Right" />
|
|
</Style>
|
|
|
|
<Style BasedOn="{StaticResource DefaultDataGridStyle}" TargetType="local:StyledDataGrid">
|
|
|
|
<Setter Property="SelectionMode" Value="Extended" />
|
|
<Setter Property="SelectionUnit" Value="FullRow" />
|
|
<Setter Property="RowStyle" Value="{StaticResource StyledDefaultRowStyle}" />
|
|
<Setter Property="CellStyle" Value="{StaticResource StyledDefaultCellStyle}" />
|
|
<Setter Property="RowHeaderStyle" Value="{StaticResource StyledRowHeaderStyle}" />
|
|
</Style>
|
|
</ResourceDictionary>
|