Skip to content

Commit b4f1a2b

Browse files
committed
remove a bit of redundant code. dont colour normal border on keyboard focus (let underline do it)
1 parent 32ef580 commit b4f1a2b

7 files changed

+12
-53
lines changed

MaterialDesignThemes.Wpf/Themes/Generic.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@
156156
<Setter Property="HorizontalAlignment" Value="Stretch"/>
157157
<Setter Property="VerticalAlignment" Value="Bottom"/>
158158
<Setter Property="Height" Value="2"/>
159+
<Setter Property="IsTabStop" Value="False"/>
159160
<Setter Property="Template">
160161
<Setter.Value>
161162
<ControlTemplate>

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@
195195
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
196196
</Trigger>
197197
<Trigger Property="IsKeyboardFocused" Value="True">
198+
<Setter TargetName="Underline" Property="IsActive" Value="True"/>
198199
</Trigger>
199200
<MultiTrigger>
200201
<MultiTrigger.Conditions>
@@ -311,6 +312,7 @@
311312
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
312313
</Trigger>
313314
<Trigger Property="IsKeyboardFocused" Value="True">
315+
<Setter TargetName="Underline" Property="IsActive" Value="True"/>
314316
</Trigger>
315317
<MultiTrigger>
316318
<MultiTrigger.Conditions>
@@ -381,7 +383,7 @@
381383
<TextBox x:Name="PART_EditableTextBox" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" Margin="{TemplateBinding Padding}" Style="{StaticResource MaterialDesignComboBoxEditableTextBox}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
382384
</Grid>
383385
</Border>
384-
<wpf:Underline x:Name="Underline" Grid.ColumnSpan="2" BindIsKeyboardFocused="False"/>
386+
<wpf:Underline x:Name="Underline" Grid.ColumnSpan="2" />
385387
</Grid>
386388
<ControlTemplate.Triggers>
387389
<Trigger Property="HasDropShadow" SourceName="PART_Popup" Value="true">
@@ -491,7 +493,7 @@
491493
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
492494
</Grid>
493495
</Border>
494-
<wpf:Underline x:Name="Underline" Grid.ColumnSpan="2" BindIsKeyboardFocused="False"/>
496+
<wpf:Underline x:Name="Underline" Grid.ColumnSpan="2" />
495497
</Grid>
496498
<ControlTemplate.Triggers>
497499
<Trigger Property="wpf:TextFieldAssist.IsNullOrEmpty" Value="False">

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DatePicker.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
PopupAnimation="Fade" />
157157
</Grid>
158158
</Border>
159-
<wpf:Underline x:Name="Underline" BindIsKeyboardFocused="False"/>
159+
<wpf:Underline x:Name="Underline" />
160160
</Grid>
161161
<ControlTemplate.Triggers>
162162
<Trigger Property="IsEnabled" Value="false">

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
5757
</Trigger>
5858
<Trigger Property="IsKeyboardFocused" Value="true">
59-
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
59+
<Setter TargetName="Underline" Property="IsActive" Value="True"/>
6060
</Trigger>
6161
<Trigger Property="Validation.HasError" Value="true">
6262
<Setter Property="BorderBrush" Value="{DynamicResource ValidationErrorBrush}"/>

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
5656
</Trigger>
5757
<Trigger Property="IsKeyboardFocused" Value="true">
58-
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
58+
<Setter TargetName="Underline" Property="IsActive" Value="True"/>
5959
</Trigger>
6060
<Trigger Property="Validation.HasError" Value="true">
6161
<Setter Property="BorderBrush" Value="{DynamicResource ValidationErrorBrush}"/>
@@ -172,7 +172,7 @@
172172
</Trigger>
173173

174174
<Trigger Property="IsKeyboardFocused" Value="true">
175-
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
175+
<Setter TargetName="Underline" Property="IsActive" Value="True"/>
176176
</Trigger>
177177

178178
<Trigger Property="Validation.HasError" Value="true">

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TimePicker.xaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<Setter Property="Background" Value="Transparent"/>
1313
<Setter Property="BorderThickness" Value="0 0 0 1"/>
1414
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
15+
<Setter Property="IsTabStop" Value="False"/>
1516
<Setter Property="wpf:TextFieldAssist.Hint" Value="Select time" />
1617
<Setter Property="ClockStyle" Value="{DynamicResource MaterialDesignClock}" />
1718
<Setter Property="ClockHostContentControlStyle">
@@ -97,7 +98,7 @@
9798
PopupAnimation="Fade"/>
9899
</Grid>
99100
</Border>
100-
<wpf:Underline x:Name="Underline" BindIsKeyboardFocused="False"/>
101+
<wpf:Underline x:Name="Underline" />
101102
</Grid>
102103
<ControlTemplate.Triggers>
103104
<Trigger Property="IsMouseOver" Value="true">

MaterialDesignThemes.Wpf/Underline.cs

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,6 @@ static Underline()
1616
DefaultStyleKeyProperty.OverrideMetadata(typeof(Underline), new FrameworkPropertyMetadata(typeof(Underline)));
1717
}
1818

19-
public static readonly DependencyProperty BindIsKeyboardFocusedProperty = DependencyProperty.Register(
20-
"BindIsKeyboardFocused", typeof(bool), typeof(Underline),
21-
new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender, BindIsKeyboardFocusedPropertyChangedCallback));
22-
23-
public bool BindIsKeyboardFocused
24-
{
25-
get { return (bool)GetValue(BindIsKeyboardFocusedProperty); }
26-
set { SetValue(BindIsKeyboardFocusedProperty, value); }
27-
}
28-
2919
public static readonly DependencyProperty IsActiveProperty = DependencyProperty.Register(
3020
"IsActive", typeof(bool), typeof(Underline),
3121
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
@@ -34,41 +24,6 @@ public bool IsActive
3424
{
3525
get { return (bool)GetValue(IsActiveProperty); }
3626
set { SetValue(IsActiveProperty, value); }
37-
}
38-
39-
private void UpdateBindIsKeyboardFocused()
40-
{
41-
if (BindIsKeyboardFocused)
42-
{
43-
BindingOperations.ClearBinding(this, Underline.IsActiveProperty);
44-
45-
var uiElement = TemplatedParent as UIElement;
46-
if (uiElement != null)
47-
{
48-
Binding isKeyboardFocusedBinding = new Binding
49-
{
50-
Path = new PropertyPath("IsKeyboardFocused"),
51-
Source = uiElement
52-
};
53-
this.SetBinding(Underline.IsActiveProperty, isKeyboardFocusedBinding);
54-
}
55-
}
56-
else
57-
{
58-
BindingOperations.ClearBinding(this, Underline.IsActiveProperty);
59-
}
60-
}
61-
62-
private static void BindIsKeyboardFocusedPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
63-
{
64-
(d as Underline)?.UpdateBindIsKeyboardFocused();
65-
}
66-
67-
public override void OnApplyTemplate()
68-
{
69-
base.OnApplyTemplate();
70-
71-
UpdateBindIsKeyboardFocused();
72-
}
27+
}
7328
}
7429
}

0 commit comments

Comments
 (0)