Skip to content

Commit c1c328b

Browse files
Jesus805Keboo
authored andcommitted
Custom Thumb Control and ControlTemplate to fix issue #1531 (#1542)
* Created Custom Thumb to override the cursor when dragging. Created ControlTemplate for Thumb that sets cursor to SizeWE * Implemented code review suggested changes GridViewColumnThumb is now internal. Created a new style explicitly for the GridView Column. GridViewColumnHeader now uses this new style.
1 parent f03bb0d commit c1c328b

File tree

3 files changed

+42
-5
lines changed

3 files changed

+42
-5
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System.Windows.Controls.Primitives;
2+
using System.Windows.Input;
3+
4+
namespace MaterialDesignThemes.Wpf
5+
{
6+
internal class GridViewColumnThumb : Thumb
7+
{
8+
public GridViewColumnThumb() : base() { }
9+
10+
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
11+
{
12+
Mouse.OverrideCursor = Cursors.SizeWE;
13+
base.OnMouseLeftButtonDown(e);
14+
}
15+
16+
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
17+
{
18+
base.OnMouseLeftButtonUp(e);
19+
Mouse.OverrideCursor = null;
20+
}
21+
}
22+
}

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@
8888
<Setter.Value>
8989
<ControlTemplate TargetType="GridViewColumnHeader">
9090
<DockPanel>
91-
<Thumb x:Name="PART_HeaderGripper"
92-
DockPanel.Dock="Right"
93-
Margin="0,0,-8,0"
94-
Style="{StaticResource MaterialDesignGridColumnHeaderGripper}" />
91+
<wpf:GridViewColumnThumb x:Name="PART_HeaderGripper"
92+
DockPanel.Dock="Right"
93+
Margin="0,0,-8,0"
94+
Style="{StaticResource MaterialDesignGridViewColumnHeaderGripper}" />
9595
<Border x:Name="HeaderBorder"
9696
Padding="{TemplateBinding Padding}"
9797
BorderThickness="{TemplateBinding BorderThickness}">

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Thumb.xaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
22
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3-
xmlns:local="clr-namespace:MaterialDesignTheme">
3+
xmlns:local="clr-namespace:MaterialDesignThemes.Wpf">
44

55
<Style x:Key="MaterialDesignThumb" TargetType="{x:Type Thumb}">
66
<Setter Property="SnapsToDevicePixels" Value="True" />
@@ -29,4 +29,19 @@
2929
<Setter Property="Cursor" Value="SizeWE"/>
3030
</Style>
3131

32+
<Style x:Key="MaterialDesignGridViewColumnHeaderGripper" TargetType="{x:Type Thumb}" BasedOn="{StaticResource MaterialDesignThumb}">
33+
<Setter Property="Width" Value="8"/>
34+
<Setter Property="Template">
35+
<Setter.Value>
36+
<ControlTemplate TargetType="{x:Type Thumb}">
37+
<Border x:Name="PART_Border"
38+
Cursor="SizeWE"
39+
Padding="{TemplateBinding Padding}"
40+
Background="{TemplateBinding Background}"
41+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
42+
</ControlTemplate>
43+
</Setter.Value>
44+
</Setter>
45+
</Style>
46+
3247
</ResourceDictionary>

0 commit comments

Comments
 (0)