Skip to content

Commit 9e71c5c

Browse files
corvinszCorvin Szimion
andauthored
Added Attached Property "TextFieldAssist.ClearButtonSize" (#3754)
* Cleanup of launchSettings and Cards Page in Demo * Revert "Cleanup of launchSettings and Cards Page in Demo" This reverts commit ede38d4. * added AP TextFieldAssist.ClearButtonSize to control the size of the ClearButton * apply TextFieldAssist.ClearButtonSize on the Button rather than the PackIcon * apply TextFieldAssist.ClearButtonSize on the Button rather than the PackIcon --------- Co-authored-by: Corvin Szimion <[email protected]>
1 parent 8c47993 commit 9e71c5c

6 files changed

+61
-23
lines changed

src/MaterialDesignThemes.Wpf/TextFieldAssist.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static class TextFieldAssist
4141

4242
public static void SetTextBoxViewVerticalAlignment(DependencyObject element, VerticalAlignment value) => element.SetValue(TextBoxViewVerticalAlignmentProperty, value);
4343

44-
public static VerticalAlignment GetTextBoxViewVerticalAlignment(DependencyObject element) => (VerticalAlignment) element.GetValue(TextBoxViewVerticalAlignmentProperty);
44+
public static VerticalAlignment GetTextBoxViewVerticalAlignment(DependencyObject element) => (VerticalAlignment)element.GetValue(TextBoxViewVerticalAlignmentProperty);
4545

4646
/// <summary>
4747
/// Controls the visibility of the underline decoration.
@@ -172,7 +172,7 @@ public static void SetSuffixTextVisibility(DependencyObject element, PrefixSuffi
172172
=> element.SetValue(SuffixTextVisibilityProperty, value);
173173

174174
public static PrefixSuffixVisibility GetSuffixTextVisibility(DependencyObject element)
175-
=> (PrefixSuffixVisibility) element.GetValue(SuffixTextVisibilityProperty);
175+
=> (PrefixSuffixVisibility)element.GetValue(SuffixTextVisibilityProperty);
176176

177177
/// <summary>
178178
/// SuffixTextHintBehavior dependency property. Controls how a floating hint aligns with respect to the text and suffix.
@@ -184,7 +184,7 @@ public static void SetSuffixTextHintBehavior(DependencyObject element, PrefixSuf
184184
=> element.SetValue(SuffixTextHintBehaviorProperty, value);
185185

186186
public static PrefixSuffixHintBehavior GetSuffixTextHintBehavior(DependencyObject element)
187-
=> (PrefixSuffixHintBehavior) element.GetValue(SuffixTextHintBehaviorProperty);
187+
=> (PrefixSuffixHintBehavior)element.GetValue(SuffixTextHintBehaviorProperty);
188188

189189
/// <summary>
190190
/// PrefixText dependency property
@@ -208,7 +208,7 @@ public static void SetPrefixTextVisibility(DependencyObject element, PrefixSuffi
208208
=> element.SetValue(PrefixTextVisibilityProperty, value);
209209

210210
public static PrefixSuffixVisibility GetPrefixTextVisibility(DependencyObject element)
211-
=> (PrefixSuffixVisibility) element.GetValue(PrefixTextVisibilityProperty);
211+
=> (PrefixSuffixVisibility)element.GetValue(PrefixTextVisibilityProperty);
212212

213213
/// <summary>
214214
/// PrefixTextHintBehavior dependency property. Controls how a floating hint aligns with respect to the text and prefix.
@@ -234,6 +234,18 @@ public static void SetHasClearButton(DependencyObject element, bool value)
234234
public static bool GetHasClearButton(DependencyObject element)
235235
=> (bool)element.GetValue(HasClearButtonProperty);
236236

237+
/// <summary>
238+
/// Controls the size of the clear button.
239+
/// </summary>
240+
public static readonly DependencyProperty ClearButtonSizeProperty = DependencyProperty.RegisterAttached(
241+
"ClearButtonSize", typeof(double), typeof(TextFieldAssist), new PropertyMetadata(16.0d));
242+
243+
public static void SetClearButtonSize(DependencyObject element, double value)
244+
=> element.SetValue(ClearButtonSizeProperty, value);
245+
246+
public static double GetClearButtonSize(DependencyObject element)
247+
=> (double)element.GetValue(ClearButtonSizeProperty);
248+
237249
/// <summary>
238250
/// Controls visibility of the leading icon
239251
/// </summary>
@@ -316,7 +328,7 @@ public static void SetIconVerticalAlignment(DependencyObject element, VerticalAl
316328
=> element.SetValue(IconVerticalAlignmentProperty, value);
317329

318330
public static VerticalAlignment GetIconVerticalAlignment(DependencyObject element)
319-
=> (VerticalAlignment) element.GetValue(IconVerticalAlignmentProperty);
331+
=> (VerticalAlignment)element.GetValue(IconVerticalAlignmentProperty);
320332

321333
public static Style GetCharacterCounterStyle(DependencyObject obj) => (Style)obj.GetValue(CharacterCounterStyleProperty);
322334

@@ -373,14 +385,14 @@ public static Thickness GetOutlinedBorderActiveThickness(DependencyObject elemen
373385
public static void SetTextBoxLineCount(DependencyObject element, int value)
374386
=> element.SetValue(TextBoxLineCountProperty, value);
375387
public static int GetTextBoxLineCount(DependencyObject element)
376-
=> (int) element.GetValue(TextBoxLineCountProperty);
388+
=> (int)element.GetValue(TextBoxLineCountProperty);
377389

378390
public static readonly DependencyProperty TextBoxIsMultiLineProperty = DependencyProperty.RegisterAttached(
379391
"TextBoxIsMultiLine", typeof(bool), typeof(TextFieldAssist), new PropertyMetadata(false));
380392
public static void SetTextBoxIsMultiLine(DependencyObject element, bool value)
381393
=> element.SetValue(TextBoxIsMultiLineProperty, value);
382394
public static bool GetTextBoxIsMultiLine(DependencyObject element)
383-
=> (bool) element.GetValue(TextBoxIsMultiLineProperty);
395+
=> (bool)element.GetValue(TextBoxIsMultiLineProperty);
384396

385397
#region Methods
386398

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.AutoSuggestBox.xaml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -227,20 +227,25 @@
227227
Visibility="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" />
228228

229229
<Button x:Name="PART_ClearButton"
230-
Grid.Column="5"
231-
Height="Auto"
232-
Padding="2,0,0,0"
233-
Command="{x:Static internal:ClearText.ClearCommand}"
234-
Focusable="False"
235-
VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}"
236-
Style="{StaticResource MaterialDesignToolButton}">
230+
Grid.Column="5"
231+
Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
232+
Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
233+
Padding="2,0,0,0"
234+
Command="{x:Static internal:ClearText.ClearCommand}"
235+
Focusable="False"
236+
VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}"
237+
Style="{StaticResource MaterialDesignToolButton}">
237238
<Button.Visibility>
238239
<MultiBinding Converter="{StaticResource ClearButtonVisibilityConverter}">
239240
<Binding Path="(wpf:TextFieldAssist.HasClearButton)" RelativeSource="{RelativeSource TemplatedParent}" />
240241
<Binding ElementName="Hint" Path="IsContentNullOrEmpty" />
241242
</MultiBinding>
242243
</Button.Visibility>
243-
<wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" />
244+
<wpf:PackIcon x:Name="ClearButtonIcon"
245+
Margin="0"
246+
Kind="CloseCircle"
247+
Height="auto"
248+
Width="auto" />
244249
</Button>
245250
</Grid>
246251
</Border>

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,8 @@
470470

471471
<Button x:Name="PART_ClearButton"
472472
Grid.Column="5"
473-
Height="Auto"
473+
Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
474+
Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
474475
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
475476
Padding="2,0,0,0"
476477
Command="{x:Static internal:ClearText.ClearCommand}"
@@ -485,7 +486,11 @@
485486
<Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" />
486487
</MultiBinding>
487488
</Button.Visibility>
488-
<wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" />
489+
<wpf:PackIcon x:Name="ClearButtonIcon"
490+
Margin="0"
491+
Kind="CloseCircle"
492+
Height="auto"
493+
Width="auto" />
489494
</Button>
490495
</Grid>
491496
</Grid>

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DatePicker.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
wpf:TextFieldAssist.TrailingIconSize="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}"
7272
wpf:TextFieldAssist.DecorationVisibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}"
7373
wpf:TextFieldAssist.HasClearButton="{TemplateBinding wpf:TextFieldAssist.HasClearButton}"
74+
wpf:TextFieldAssist.ClearButtonSize="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
7475
wpf:TextFieldAssist.HasFilledTextField="{TemplateBinding wpf:TextFieldAssist.HasFilledTextField}"
7576
wpf:TextFieldAssist.HasOutlinedTextField="{TemplateBinding wpf:TextFieldAssist.HasOutlinedTextField}"
7677
wpf:TextFieldAssist.NewSpecHighlightingEnabled="{TemplateBinding wpf:TextFieldAssist.NewSpecHighlightingEnabled}"

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,8 @@
271271
<Button x:Name="PART_ClearButton"
272272
Foreground="{TemplateBinding Foreground}"
273273
Grid.Column="5"
274-
Height="Auto"
274+
Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
275+
Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
275276
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
276277
Padding="2,0,0,0"
277278
Command="{x:Static internal:ClearText.ClearCommand}"
@@ -284,7 +285,11 @@
284285
<Binding ElementName="Hint" Path="IsContentNullOrEmpty" />
285286
</MultiBinding>
286287
</Button.Visibility>
287-
<wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" />
288+
<wpf:PackIcon x:Name="ClearButtonIcon"
289+
Margin="0"
290+
Kind="CloseCircle"
291+
Height="auto"
292+
Width="auto" />
288293
</Button>
289294
</Grid>
290295
</Border>
@@ -898,7 +903,8 @@
898903

899904
<Button x:Name="PART_ClearButton"
900905
Grid.Column="6"
901-
Height="Auto"
906+
Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
907+
Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
902908
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
903909
Padding="2,0,0,0"
904910
Command="{x:Static internal:ClearText.ClearCommand}"
@@ -912,7 +918,11 @@
912918
<Binding ElementName="Hint" Path="IsContentNullOrEmpty" />
913919
</MultiBinding>
914920
</Button.Visibility>
915-
<wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" />
921+
<wpf:PackIcon x:Name="ClearButtonIcon"
922+
Margin="0"
923+
Kind="CloseCircle"
924+
Height="auto"
925+
Width="auto" />
916926
</Button>
917927

918928
</Grid>

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,8 @@
266266

267267
<Button x:Name="PART_ClearButton"
268268
Grid.Column="5"
269-
Height="Auto"
269+
Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
270+
Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}"
270271
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
271272
Padding="2,0,0,0"
272273
Command="{x:Static internal:ClearText.ClearCommand}"
@@ -280,7 +281,11 @@
280281
<Binding ElementName="Hint" Path="IsContentNullOrEmpty" />
281282
</MultiBinding>
282283
</Button.Visibility>
283-
<wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" />
284+
<wpf:PackIcon x:Name="ClearButtonIcon"
285+
Margin="0"
286+
Kind="CloseCircle"
287+
Height="auto"
288+
Width="auto" />
284289
</Button>
285290
</Grid>
286291
</Border>

0 commit comments

Comments
 (0)