Skip to content

Commit b9f0db7

Browse files
SmartHint "hint text" should affect layout width of TextBox, PasswordBox, etc. (#3141)
* Add demo page showcasing the issues * Just some thoughts feel free to revert * Revert "Just some thoughts feel free to revert" This reverts commit 4424bb3. * Move ClipToBounds to a wrapping Grid Also temporarily slows down the animations so it is easier to verify the floating animation. * Move floating transform out of Canvas and into clipping Grid * Add options in demo page for toggling "all the stuff" * Revert demo page and animation changes. --------- Co-authored-by: Kevin Bost <[email protected]>
1 parent 3d1e14d commit b9f0db7

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.SmartHint.xaml

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<converters:BooleanToVisibilityConverter x:Key="InverseBoolToVisConverter"
99
FalseValue="Visible"
1010
TrueValue="Collapsed" />
11-
<converters:FloatingHintTransformConverter x:Key="FloatingHintCanvasTransformConverter" ApplyScaleTransform="False" />
11+
<converters:FloatingHintTransformConverter x:Key="FloatingHintClippingGridTransformConverter" ApplyScaleTransform="False" />
1212
<converters:FloatingHintTransformConverter x:Key="FloatingHintTransformConverter" ApplyTranslateTransform="False" />
1313
<converters:FloatingHintTextBlockMarginConverter x:Key="FloatingHintTextBlockMarginConverter" />
1414
<system:Double x:Key="NoContentFloatingScale">1.0</system:Double>
@@ -140,16 +140,17 @@
140140
</VisualStateGroup>
141141
</VisualStateManager.VisualStateGroups>
142142
<wpf:ScaleHost x:Name="ScaleHost" />
143-
<Canvas ClipToBounds="True" HorizontalAlignment="Stretch" Height="{Binding ElementName=FloatingHintTextBlock, Path=ActualHeight}">
144-
<Canvas.RenderTransform>
145-
<MultiBinding Converter="{StaticResource FloatingHintCanvasTransformConverter}">
143+
<Grid ClipToBounds="True">
144+
<Grid.RenderTransform>
145+
<MultiBinding Converter="{StaticResource FloatingHintClippingGridTransformConverter}">
146146
<Binding ElementName="ScaleHost" Path="Scale" />
147147
<Binding Path="FloatingScale" RelativeSource="{RelativeSource TemplatedParent}" />
148148
<Binding Source="{StaticResource NoContentFloatingScale}" />
149149
<Binding Path="FloatingOffset" RelativeSource="{RelativeSource TemplatedParent}" />
150150
</MultiBinding>
151-
</Canvas.RenderTransform>
152-
<ContentControl x:Name="FloatingHintTextBlock"
151+
</Grid.RenderTransform>
152+
<Canvas HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="{Binding ElementName=FloatingHintTextBlock, Path= ActualWidth}" Height="{Binding ElementName=FloatingHintTextBlock, Path=ActualHeight}">
153+
<ContentControl x:Name="FloatingHintTextBlock"
153154
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
154155
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
155156
Content="{TemplateBinding Hint}"
@@ -160,30 +161,31 @@
160161
Opacity="{TemplateBinding HintOpacity}"
161162
RenderTransformOrigin="0,0"
162163
Visibility="{TemplateBinding UseFloating, Converter={StaticResource BoolToVisConverter}}">
163-
<ContentControl.Margin>
164-
<MultiBinding Converter="{StaticResource FloatingHintTextBlockMarginConverter}">
165-
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:HintAssist.FloatingHintHorizontalAlignment)" />
166-
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
167-
<Binding RelativeSource="{RelativeSource Self}" Path="ActualWidth" />
168-
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ActualWidth" />
169-
<Binding ElementName="ScaleHost" Path="Scale" />
170-
<Binding Path="FloatingScale" RelativeSource="{RelativeSource TemplatedParent}" />
171-
<Binding Source="{StaticResource NoContentFloatingScale}" />
172-
</MultiBinding>
173-
</ContentControl.Margin>
174-
<ContentControl.Tag>
175-
<system:Double>0.0</system:Double>
176-
</ContentControl.Tag>
177-
<ContentControl.RenderTransform>
178-
<MultiBinding Converter="{StaticResource FloatingHintTransformConverter}">
179-
<Binding ElementName="ScaleHost" Path="Scale" />
180-
<Binding Path="FloatingScale" RelativeSource="{RelativeSource TemplatedParent}" />
181-
<Binding Source="{StaticResource NoContentFloatingScale}" />
182-
<Binding Path="FloatingOffset" RelativeSource="{RelativeSource TemplatedParent}" />
183-
</MultiBinding>
184-
</ContentControl.RenderTransform>
185-
</ContentControl>
186-
</Canvas>
164+
<ContentControl.Margin>
165+
<MultiBinding Converter="{StaticResource FloatingHintTextBlockMarginConverter}">
166+
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:HintAssist.FloatingHintHorizontalAlignment)" />
167+
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
168+
<Binding RelativeSource="{RelativeSource Self}" Path="ActualWidth" />
169+
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ActualWidth" />
170+
<Binding ElementName="ScaleHost" Path="Scale" />
171+
<Binding Path="FloatingScale" RelativeSource="{RelativeSource TemplatedParent}" />
172+
<Binding Source="{StaticResource NoContentFloatingScale}" />
173+
</MultiBinding>
174+
</ContentControl.Margin>
175+
<ContentControl.Tag>
176+
<system:Double>0.0</system:Double>
177+
</ContentControl.Tag>
178+
<ContentControl.RenderTransform>
179+
<MultiBinding Converter="{StaticResource FloatingHintTransformConverter}">
180+
<Binding ElementName="ScaleHost" Path="Scale" />
181+
<Binding Path="FloatingScale" RelativeSource="{RelativeSource TemplatedParent}" />
182+
<Binding Source="{StaticResource NoContentFloatingScale}" />
183+
<Binding Path="FloatingOffset" RelativeSource="{RelativeSource TemplatedParent}" />
184+
</MultiBinding>
185+
</ContentControl.RenderTransform>
186+
</ContentControl>
187+
</Canvas>
188+
</Grid>
187189
</Grid>
188190
</ControlTemplate>
189191
</Setter.Value>

0 commit comments

Comments
 (0)