Skip to content

Commit f8932c7

Browse files
MichelMichelsKeboo
andauthored
TextField TrailingIcon added (built upon #2221 and previous) (#2222)
* TextField.PrefixText spec update * WIP: TextField Leading Icon * LeadingIconSize added, TextBox template changed for icon * TextBox TrailingIcon added * Fixing comments to match members Co-authored-by: Kevin Bost <[email protected]>
1 parent 40ee2e5 commit f8932c7

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

MaterialDesignThemes.Wpf/TextFieldAssist.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,42 @@ public static void SetLeadingIconSize(DependencyObject element, double value)
216216
public static double GetLeadingIconSize(DependencyObject element)
217217
=> (double)element.GetValue(LeadingIconSizeProperty);
218218

219+
/// <summary>
220+
/// Controls visibility of the trailing icon
221+
/// </summary>
222+
public static readonly DependencyProperty HasTrailingIconProperty = DependencyProperty.RegisterAttached(
223+
"HasTrailingIcon", typeof(bool), typeof(TextFieldAssist), new PropertyMetadata(default(bool)));
224+
225+
public static void SetHasTrailingIcon(DependencyObject element, bool value)
226+
=> element.SetValue(HasTrailingIconProperty, value);
227+
228+
public static bool GetHasTrailingIcon(DependencyObject element)
229+
=> (bool)element.GetValue(HasTrailingIconProperty);
230+
231+
/// <summary>
232+
/// Controls the trailing icon
233+
/// </summary>
234+
public static readonly DependencyProperty TrailingIconProperty = DependencyProperty.RegisterAttached(
235+
"TrailingIcon", typeof(PackIconKind), typeof(TextFieldAssist), new PropertyMetadata());
236+
237+
public static void SetTrailingIcon(DependencyObject element, PackIconKind value)
238+
=> element.SetValue(TrailingIconProperty, value);
239+
240+
public static PackIconKind GetTrailingIcon(DependencyObject element)
241+
=> (PackIconKind)element.GetValue(TrailingIconProperty);
242+
243+
/// <summary>
244+
/// Controls the size of the trailing icon
245+
/// </summary>
246+
public static readonly DependencyProperty TrailingIconSizeProperty = DependencyProperty.RegisterAttached(
247+
"TrailingIconSize", typeof(double), typeof(TextFieldAssist), new PropertyMetadata(20.0));
248+
249+
public static void SetTrailingIconSize(DependencyObject element, double value)
250+
=> element.SetValue(TrailingIconSizeProperty, value);
251+
252+
public static double GetTrailingIconSize(DependencyObject element)
253+
=> (double)element.GetValue(TrailingIconSizeProperty);
254+
219255
#region Methods
220256

221257
private static void IncludeSpellingSuggestionsChanged(DependencyObject element, DependencyPropertyChangedEventArgs e)

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@
9898
<wpf:PackIcon
9999
Grid.Column="0"
100100
x:Name="LeadingPackIcon"
101-
Margin="0 0 8 0"
101+
Margin="0 0 6 0"
102+
VerticalAlignment="Center"
102103
Height="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}"
103104
Width="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}"
104-
VerticalAlignment="Bottom"
105105
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
106106
Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={StaticResource BooleanToVisibilityConverter}}"
107107
Kind="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" />
@@ -171,6 +171,17 @@
171171
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
172172
Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}" />
173173
</Grid>
174+
<wpf:PackIcon
175+
Grid.Column="2"
176+
x:Name="TrailingPackIcon"
177+
Margin="4 0 0 0"
178+
VerticalAlignment="Center"
179+
Height="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}"
180+
Width="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}"
181+
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
182+
Visibility="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon, Converter={StaticResource BooleanToVisibilityConverter}}"
183+
Kind="{TemplateBinding wpf:TextFieldAssist.TrailingIcon}" />
184+
174185
<Button
175186
Grid.Column="2"
176187
x:Name="PART_ClearButton"

0 commit comments

Comments
 (0)