120 lines
6.9 KiB
Plaintext
120 lines
6.9 KiB
Plaintext
|
<UserControl x:Class="ExtendedGrid.UserControls.ColumnChooserControl"
|
||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
|
VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" SizeChanged="UserControlSizeChanged" FontFamily="Arial" FontSize="9"
|
||
|
>
|
||
|
<UserControl.Resources>
|
||
|
<Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}">
|
||
|
<Setter Property="SnapsToDevicePixels" Value="true"/>
|
||
|
<Setter Property="FocusVisualStyle" Value="{DynamicResource CheckBoxFocusVisual}"/>
|
||
|
<Setter Property="Background" Value="{DynamicResource NormalBrush}"/>
|
||
|
<Setter Property="BorderBrush" Value="{DynamicResource NormalBorderBrush}"/>
|
||
|
<Setter Property="Template">
|
||
|
<Setter.Value>
|
||
|
<ControlTemplate TargetType="{x:Type CheckBox}">
|
||
|
<Border>
|
||
|
<Grid>
|
||
|
<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Margin="{TemplateBinding Padding}" />
|
||
|
<Border>
|
||
|
<Border.Background>
|
||
|
<VisualBrush Opacity="1.0" Stretch="None">
|
||
|
<VisualBrush.Visual>
|
||
|
<Path Name="path" Opacity="0.1" Data="M 0 5 L 3 10 10 0" Stroke="#FF3838BA" StrokeThickness="1.5"
|
||
|
StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeLineJoin="Round" />
|
||
|
</VisualBrush.Visual>
|
||
|
</VisualBrush>
|
||
|
</Border.Background>
|
||
|
</Border>
|
||
|
</Grid>
|
||
|
</Border>
|
||
|
<ControlTemplate.Triggers>
|
||
|
<Trigger Property="IsChecked" Value="True">
|
||
|
<Setter TargetName="path" Property="Opacity" Value="1.0" />
|
||
|
<Setter TargetName="path" Property="Stroke" Value="#FF70A16F" />
|
||
|
<Setter TargetName="path" Property="StrokeThickness" Value="2.5" />
|
||
|
</Trigger>
|
||
|
<Trigger Property="IsEnabled" Value="False">
|
||
|
<Setter Property="Foreground" Value="Gray" />
|
||
|
</Trigger>
|
||
|
</ControlTemplate.Triggers>
|
||
|
|
||
|
</ControlTemplate>
|
||
|
</Setter.Value>
|
||
|
</Setter>
|
||
|
<EventSetter Event="Checked" Handler="CheckBoxChecked"/>
|
||
|
<EventSetter Event="Unchecked" Handler="CheckBoxChecked"/>
|
||
|
<EventSetter Event="MouseDoubleClick" Handler="DoubleClick"/>
|
||
|
|
||
|
</Style>
|
||
|
<DataTemplate x:Key="editingTextBoxTemplate">
|
||
|
<TextBox Foreground="Red" FontFamily="Arial" Height="15" VerticalAlignment="Top" FontSize="9" Loaded="TextBoxLoaded" Text="{Binding columnHeader, Mode=TwoWay}" MouseLeave="TextBoxMouseLeave" MouseDown="TextBoxMouseDown" MouseDoubleClick="TextBoxMouseDoubleClick" TextChanged="TextBoxTextChanged"/>
|
||
|
</DataTemplate>
|
||
|
</UserControl.Resources>
|
||
|
<DockPanel Grid.Row="0" LastChildFill="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="-14,0,0,0" >
|
||
|
<!-- Drag and Drop Popup -->
|
||
|
<Popup x:Name="popupDrag" IsHitTestVisible="False" Placement="RelativePoint" PlacementTarget="{Binding}" AllowsTransparency="True" IsOpen="False">
|
||
|
<Border BorderBrush="LightSteelBlue" BorderThickness="1" Background="AliceBlue" Opacity="0.9">
|
||
|
<StackPanel Orientation="Horizontal" Margin="4,3,8,3">
|
||
|
<Image Source="../Images/plus.png" Width="16" Height="16" />
|
||
|
<TextBlock
|
||
|
FontSize="9"
|
||
|
Foreground="Black"
|
||
|
FontWeight="Bold"
|
||
|
VerticalAlignment="Center"
|
||
|
Text="{Binding Path=DraggedItem[columnHeader]}"
|
||
|
Margin="4,0,0,0">
|
||
|
</TextBlock>
|
||
|
</StackPanel>
|
||
|
</Border>
|
||
|
</Popup>
|
||
|
<!-- Drag and Drop Popup -->
|
||
|
<DataGrid x:Name="grid" AutoGenerateColumns="False" IsReadOnly="False"
|
||
|
ItemsSource="{Binding ColumnChooserDataTable}" HeadersVisibility="None"
|
||
|
CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False"
|
||
|
CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False"
|
||
|
Style="{x:Null}" BorderBrush="{x:Null}" BorderThickness="0" GridLinesVisibility="None"
|
||
|
Loaded="DataGridLoaded" SizeChanged="GridSizeChanged" MouseMove="GridMouseMove" PreviewMouseLeftButtonUp="GridPreviewMouseLeftButtonUp"
|
||
|
>
|
||
|
<DataGrid.Resources>
|
||
|
<Style TargetType="{x:Type DataGridCell}">
|
||
|
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="PreviewDataCellMouseLeftButtonDown"/>
|
||
|
<EventSetter Event="MouseEnter" Handler="CellMouseEnter"/>
|
||
|
<EventSetter Event="MouseDoubleClick" Handler="DoubleClick"/>
|
||
|
</Style>
|
||
|
</DataGrid.Resources>
|
||
|
<DataGrid.Columns>
|
||
|
<DataGridCheckBoxColumn Width="SizeToCells" MinWidth="25"
|
||
|
Binding="{Binding chkBox}"
|
||
|
IsReadOnly="False" ElementStyle="{StaticResource CheckBoxStyle}" >
|
||
|
|
||
|
</DataGridCheckBoxColumn>
|
||
|
<DataGridTemplateColumn
|
||
|
>
|
||
|
<DataGridTemplateColumn.CellTemplate>
|
||
|
<DataTemplate>
|
||
|
<DataGridCell Content="{Binding columnHeader}"
|
||
|
Foreground="Black"
|
||
|
VerticalAlignment="Center"/>
|
||
|
</DataTemplate>
|
||
|
</DataGridTemplateColumn.CellTemplate>
|
||
|
|
||
|
</DataGridTemplateColumn>
|
||
|
|
||
|
<DataGridTemplateColumn CellEditingTemplate="{StaticResource editingTextBoxTemplate}"
|
||
|
Visibility="Collapsed" >
|
||
|
<DataGridTemplateColumn.CellTemplate>
|
||
|
<DataTemplate>
|
||
|
<DataGridCell Content="{Binding columnField}"
|
||
|
Foreground="Black"
|
||
|
VerticalAlignment="Center"/>
|
||
|
</DataTemplate>
|
||
|
</DataGridTemplateColumn.CellTemplate>
|
||
|
|
||
|
|
||
|
</DataGridTemplateColumn>
|
||
|
</DataGrid.Columns>
|
||
|
|
||
|
</DataGrid>
|
||
|
</DockPanel>
|
||
|
</UserControl>
|