Skip to content

Commit c4012cc

Browse files
committed
open up hints for more complex types
1 parent 1debcf9 commit c4012cc

File tree

2 files changed

+46
-37
lines changed

2 files changed

+46
-37
lines changed

MaterialDesignThemes.Wpf/SmartHint.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ namespace MaterialDesignThemes.Wpf
1515
/// <para/>
1616
/// To set a target control you should set the HintProxy property. Use the <see cref="HintProxyFabricConverter.Instance"/> converter which converts a control into the IHintProxy interface.
1717
/// </summary>
18-
[TemplateVisualState(GroupName = MaterialDesignTextStatesGroupName, Name = MaterialDesignStateTextEmptyName)]
19-
[TemplateVisualState(GroupName = MaterialDesignTextStatesGroupName, Name = MaterialDesignStateTextNotEmptyName)]
18+
[TemplateVisualState(GroupName = ContentStatesGroupName, Name = ContentEmptyName)]
19+
[TemplateVisualState(GroupName = ContentStatesGroupName, Name = ContentNotEmptyName)]
2020
public class SmartHint : Control
2121
{
22-
public const string MaterialDesignTextStatesGroupName = "MaterialDesignTextStates";
23-
public const string MaterialDesignStateTextEmptyName = "MaterialDesignStateTextEmpty";
24-
public const string MaterialDesignStateTextNotEmptyName = "MaterialDesignStateTextNotEmpty";
22+
public const string ContentStatesGroupName = "ContentStates";
23+
public const string ContentEmptyName = "ContentEmpty";
24+
public const string ContentNotEmptyName = "ContentNotEmpty";
2525

2626
#region ManagedProperty
2727

@@ -158,8 +158,8 @@ private void RefreshState(bool useTransitions)
158158
Dispatcher.BeginInvoke(new Action(() =>
159159
{
160160
var state = string.IsNullOrEmpty((HintProxy.Content ?? "").ToString())
161-
? MaterialDesignStateTextEmptyName
162-
: MaterialDesignStateTextNotEmptyName;
161+
? ContentEmptyName
162+
: ContentNotEmptyName;
163163

164164
VisualStateManager.GoToState(this, state, useTransitions);
165165
}));

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.SmartHint.xaml

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,75 +21,81 @@
2121
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
2222
VerticalAlignment="{TemplateBinding VerticalAlignment}">
2323
<VisualStateManager.VisualStateGroups>
24-
<VisualStateGroup x:Name="MaterialDesignTextStates">
24+
<VisualStateGroup x:Name="ContentStates">
2525
<VisualStateGroup.Transitions>
26-
<VisualTransition From="*" To="MaterialDesignStateTextNotEmpty">
26+
<VisualTransition From="*" To="ContentNotEmpty">
2727
<Storyboard>
2828
<DoubleAnimation Storyboard.TargetName="SimpleHintTextBlock" Storyboard.TargetProperty="Opacity"
2929
Duration="0:0:0" To="0" />
30-
31-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="FontSize"
32-
Duration="0:0:0.3" To="10"
33-
EasingFunction="{StaticResource AnimationEasingFunction}"/>
3430
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="Opacity"
3531
Duration="0:0:0.3" To="1"
3632
EasingFunction="{StaticResource AnimationEasingFunction}"/>
37-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.X)"
33+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)"
34+
Duration="0:0:0.3" To=".74"
35+
EasingFunction="{StaticResource AnimationEasingFunction}"/>
36+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)"
37+
Duration="0:0:0.3" To=".74"
38+
EasingFunction="{StaticResource AnimationEasingFunction}"/>
39+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
3840
Duration="0:0:0.3" To="1"
3941
EasingFunction="{StaticResource AnimationEasingFunction}"/>
40-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.Y)"
41-
Duration="0:0:0.3" To="-16"
42+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)"
43+
Duration="0:0:0.3" To="-27"
4244
EasingFunction="{StaticResource AnimationEasingFunction}"/>
4345
</Storyboard>
4446
</VisualTransition>
45-
<VisualTransition From="*" To="MaterialDesignStateTextEmpty">
47+
<VisualTransition From="*" To="ContentEmpty">
4648
<Storyboard>
4749
<DoubleAnimation Storyboard.TargetName="SimpleHintTextBlock" Storyboard.TargetProperty="Opacity"
4850
Duration="0:0:0.3"
4951
EasingFunction="{StaticResource AnimationEasingFunction}"/>
50-
51-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="FontSize"
52-
Duration="0:0:0.3"
53-
EasingFunction="{StaticResource AnimationEasingFunction}"/>
5452
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="Opacity"
5553
Duration="0:0:0.3"
5654
EasingFunction="{StaticResource AnimationEasingFunction}"/>
57-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.X)"
55+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)"
56+
Duration="0:0:0.3"
57+
EasingFunction="{StaticResource AnimationEasingFunction}"/>
58+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)"
59+
Duration="0:0:0.3"
60+
EasingFunction="{StaticResource AnimationEasingFunction}"/>
61+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"
5862
Duration="0:0:0.3"
5963
EasingFunction="{StaticResource AnimationEasingFunction}"/>
60-
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.Y)"
64+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)"
6165
Duration="0:0:0.3"
6266
EasingFunction="{StaticResource AnimationEasingFunction}"/>
6367
</Storyboard>
6468
</VisualTransition>
6569
</VisualStateGroup.Transitions>
66-
<VisualState x:Name="MaterialDesignStateTextNotEmpty">
70+
<VisualState x:Name="ContentNotEmpty">
6771
<Storyboard>
6872
<DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SimpleHintTextBlock"
6973
Duration="0" To="0" />
70-
71-
<DoubleAnimation Storyboard.TargetProperty="FontSize" Storyboard.TargetName="FloatingHintTextBlock"
72-
Duration="0" To="10" />
7374
<DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FloatingHintTextBlock"
7475
Duration="0" To="1" />
75-
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="FloatingHintTextBlock"
76+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)"
77+
Duration="0" To=".74" />
78+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)"
79+
Duration="0" To=".74" />
80+
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="FloatingHintTextBlock"
7681
Duration="0" To="1" />
77-
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="FloatingHintTextBlock"
78-
Duration="0" To="-16" />
82+
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="FloatingHintTextBlock"
83+
Duration="0" To="-27" />
7984
</Storyboard>
8085
</VisualState>
81-
<VisualState x:Name="MaterialDesignStateTextEmpty">
86+
<VisualState x:Name="ContentEmpty">
8287
<Storyboard>
8388
<DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SimpleHintTextBlock"
8489
Duration="0" />
85-
86-
<DoubleAnimation Storyboard.TargetProperty="FontSize" Storyboard.TargetName="FloatingHintTextBlock"
87-
Duration="0" />
8890
<DoubleAnimation Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FloatingHintTextBlock"
8991
Duration="0" />
90-
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="FloatingHintTextBlock"
92+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)"
93+
Duration="0" />
94+
<DoubleAnimation Storyboard.TargetName="FloatingHintTextBlock" Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)"
95+
Duration="0" />
96+
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="FloatingHintTextBlock"
9197
Duration="0" />
92-
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="FloatingHintTextBlock"
98+
<DoubleAnimation Storyboard.TargetProperty="(Control.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="FloatingHintTextBlock"
9399
Duration="0" />
94100
</Storyboard>
95101
</VisualState>
@@ -106,7 +112,10 @@
106112
IsHitTestVisible="False"
107113
RenderTransformOrigin="0,1">
108114
<ContentControl.RenderTransform>
109-
<TranslateTransform X="0" Y="0"/>
115+
<TransformGroup>
116+
<TranslateTransform X="0" Y="0"/>
117+
<ScaleTransform ScaleX="1" ScaleY="1" />
118+
</TransformGroup>
110119
</ContentControl.RenderTransform>
111120
</ContentControl>
112121
<ContentControl x:Name="SimpleHintTextBlock"

0 commit comments

Comments
 (0)