Skip to content

Commit 31e3840

Browse files
committed
Fixing so the hack is no longer needed
1 parent 8de7db7 commit 31e3840

File tree

2 files changed

+19
-33
lines changed

2 files changed

+19
-33
lines changed

src/MainDemo.Wpf/SmartHint.xaml.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,10 @@ public partial class SmartHint : UserControl
1717
internal static void SetRichTextBoxText(DependencyObject element, object value) => element.SetValue(RichTextBoxTextProperty, value);
1818
internal static object GetRichTextBoxText(DependencyObject element) => element.GetValue(RichTextBoxTextProperty);
1919

20-
private SmartHintViewModel ViewModel { get; }
21-
2220
public SmartHint()
2321
{
24-
DataContext = ViewModel = new SmartHintViewModel();
22+
DataContext = new SmartHintViewModel();
2523
InitializeComponent();
26-
27-
Loaded += SmartHint_Loaded;
28-
}
29-
30-
private void SmartHint_Loaded(object sender, RoutedEventArgs e)
31-
{
32-
// HACK! For some strange reason, the calculation of the left margin for the hint is initially wrong if these values are set as default in the view model directly.
33-
// Setting them here is a bit hacky, but it makes the demo page work, and I don't think this would be an issue in a real world application so I can live the hack.
34-
// To see the issue in action: Simply comment out the 2 lines below, open the "Smart Hint" page and toggle the "IsReadOnly" checkbox in the "TextBox styles" section;
35-
// that will place the hint on top of the prefix text for unknown reasons.
36-
ViewModel.PrefixText = "Pre";
37-
ViewModel.SuffixText = "Suf";
3824
}
3925

4026
private void HasErrors_OnToggled(object sender, RoutedEventArgs e)

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -151,24 +151,6 @@
151151
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
152152
Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" />
153153

154-
<TextBlock x:Name="PrefixTextBlock"
155-
Grid.Column="1"
156-
Margin="0,0,2,0"
157-
VerticalAlignment="Center"
158-
FontSize="{TemplateBinding FontSize}"
159-
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
160-
Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}">
161-
<TextBlock.Visibility>
162-
<MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}">
163-
<Binding ElementName="Hint" Path="IsHintInFloatingPosition" />
164-
<Binding Path="(wpf:TextFieldAssist.PrefixText)" RelativeSource="{RelativeSource TemplatedParent}" />
165-
<Binding Path="(wpf:TextFieldAssist.PrefixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" />
166-
<Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" />
167-
<Binding Path="IsReadOnly" RelativeSource="{RelativeSource TemplatedParent}" Converter="{x:Static converters:InvertBooleanConverter.Instance}" />
168-
</MultiBinding>
169-
</TextBlock.Visibility>
170-
</TextBlock>
171-
172154
<ScrollViewer x:Name="PART_ContentHost"
173155
Grid.Column="2"
174156
HorizontalAlignment="Stretch"
@@ -237,6 +219,24 @@
237219
</wpf:SmartHint.Hint>
238220
</wpf:SmartHint>
239221

222+
<TextBlock x:Name="PrefixTextBlock"
223+
Grid.Column="1"
224+
Margin="0,0,2,0"
225+
VerticalAlignment="Center"
226+
FontSize="{TemplateBinding FontSize}"
227+
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
228+
Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}">
229+
<TextBlock.Visibility>
230+
<MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}">
231+
<Binding ElementName="Hint" Path="IsHintInFloatingPosition" />
232+
<Binding Path="(wpf:TextFieldAssist.PrefixText)" RelativeSource="{RelativeSource TemplatedParent}" />
233+
<Binding Path="(wpf:TextFieldAssist.PrefixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" />
234+
<Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" />
235+
<Binding Path="IsReadOnly" RelativeSource="{RelativeSource TemplatedParent}" Converter="{x:Static converters:InvertBooleanConverter.Instance}" />
236+
</MultiBinding>
237+
</TextBlock.Visibility>
238+
</TextBlock>
239+
240240
<TextBlock x:Name="SuffixTextBlock"
241241
Grid.Column="3"
242242
Margin="2,0,0,0"

0 commit comments

Comments
 (0)