Skip to content

Commit 44f4874

Browse files
dhilmathyKeboo
authored andcommitted
Moved popup button style out for extension (#1139)
1 parent d90c3ca commit 44f4874

File tree

2 files changed

+63
-53
lines changed

2 files changed

+63
-53
lines changed

MainDemo.Wpf/Buttons.xaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@
131131
<RowDefinition Height="*"/>
132132
<RowDefinition Height="*"/>
133133
<RowDefinition Height="*"/>
134-
<RowDefinition Height="*" />
134+
<RowDefinition Height="*"/>
135+
<RowDefinition Height="*"/>
135136
</Grid.RowDefinitions>
136137
<TextBlock Grid.Column="0" Grid.Row="0" Style="{StaticResource MaterialDesignTitleTextBlock}" Margin="8,8,8,16">OPTIONS</TextBlock>
137138
<TextBox Grid.Column="0" Grid.Row="1" materialDesign:HintAssist.Hint="Setting 1" Text="200"/>
@@ -152,6 +153,17 @@
152153
<ComboBoxItem>250%</ComboBoxItem>
153154
<ComboBoxItem>501%</ComboBoxItem>
154155
</ComboBox>
156+
157+
<StackPanel Grid.Row="5" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
158+
<Button Content="_Save" />
159+
<Button Content="_Cancel">
160+
<Button.Style>
161+
<Style TargetType="Button" BasedOn="{StaticResource MaterialDesignPopupBoxButton}">
162+
<Setter Property="Foreground" Value="Red" />
163+
</Style>
164+
</Button.Style>
165+
</Button>
166+
</StackPanel>
155167
</Grid>
156168

157169
</materialDesign:PopupBox>

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PopupBox.xaml

Lines changed: 50 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,55 @@
99
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" />
1010
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToolTip.xaml" />
1111
</ResourceDictionary.MergedDictionaries>
12-
12+
13+
<Style TargetType="{x:Type Button}" x:Key="MaterialDesignPopupBoxButton">
14+
<Setter Property="VerticalContentAlignment" Value="Bottom" />
15+
<Setter Property="HorizontalContentAlignment" Value="Left" />
16+
<Setter Property="Padding" Value="16 0 16 16" />
17+
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}" />
18+
<Setter Property="Template">
19+
<Setter.Value>
20+
<ControlTemplate TargetType="{x:Type Button}">
21+
<Grid>
22+
<VisualStateManager.VisualStateGroups>
23+
<VisualStateGroup Name="CommonStates">
24+
<VisualStateGroup.Transitions>
25+
<VisualTransition GeneratedDuration="0:0:0.3" To="Normal">
26+
<VisualTransition.GeneratedEasingFunction>
27+
<CircleEase EasingMode="EaseOut"/>
28+
</VisualTransition.GeneratedEasingFunction>
29+
</VisualTransition>
30+
</VisualStateGroup.Transitions>
31+
<VisualState Name="Normal"/>
32+
<VisualState Name="MouseOver">
33+
<Storyboard>
34+
<DoubleAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="Opacity" To="0.1" Duration="0"/>
35+
</Storyboard>
36+
</VisualState>
37+
<VisualState Name="Disabled">
38+
<Storyboard>
39+
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.48" Duration="0"/>
40+
</Storyboard>
41+
</VisualState>
42+
</VisualStateGroup>
43+
</VisualStateManager.VisualStateGroups>
44+
<Border x:Name="MouseOverBorder" Opacity="0" Background="{TemplateBinding Foreground, Converter={StaticResource BrushRoundConverter}}"/>
45+
<wpf:Ripple Feedback="{TemplateBinding Foreground, Converter={StaticResource BrushRoundConverter}}"
46+
Focusable="False"
47+
MinHeight="48"
48+
Content="{TemplateBinding Content}"
49+
ContentTemplate="{TemplateBinding ContentTemplate}"
50+
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
51+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
52+
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
53+
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
54+
Padding="{TemplateBinding Padding}"/>
55+
</Grid>
56+
</ControlTemplate>
57+
</Setter.Value>
58+
</Setter>
59+
</Style>
60+
1361
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
1462
<converters:NullableToVisibilityConverter x:Key="NullVisibilityConverter" />
1563
<converters:NullableToVisibilityConverter x:Key="InvertedNullVisibilityConverter" NullValue="Visible" NotNullValue="Collapsed" />
@@ -69,57 +117,7 @@
69117
RenderOptions.ClearTypeHint="Enabled"
70118
Margin="5">
71119
<wpf:Card.Resources>
72-
<Style TargetType="{x:Type Button}">
73-
<Setter Property="VerticalContentAlignment" Value="Bottom" />
74-
<Setter Property="HorizontalContentAlignment" Value="Left" />
75-
<Setter Property="Padding" Value="16 0 16 16" />
76-
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}" />
77-
<Setter Property="Template">
78-
<Setter.Value>
79-
<ControlTemplate TargetType="{x:Type Button}">
80-
<Grid>
81-
<VisualStateManager.VisualStateGroups>
82-
<VisualStateGroup Name="CommonStates">
83-
<VisualStateGroup.Transitions>
84-
<VisualTransition GeneratedDuration="0:0:0.3" To="Normal">
85-
<VisualTransition.GeneratedEasingFunction>
86-
<CircleEase EasingMode="EaseOut"/>
87-
</VisualTransition.GeneratedEasingFunction>
88-
</VisualTransition>
89-
</VisualStateGroup.Transitions>
90-
<VisualState Name="Normal"/>
91-
<VisualState Name="MouseOver">
92-
<Storyboard>
93-
<DoubleAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="Opacity"
94-
To="0.1" Duration="0"/>
95-
</Storyboard>
96-
</VisualState>
97-
<VisualState Name="Disabled">
98-
<Storyboard>
99-
<DoubleAnimation Storyboard.TargetProperty="Opacity"
100-
To="0.48" Duration="0"/>
101-
</Storyboard>
102-
</VisualState>
103-
</VisualStateGroup>
104-
</VisualStateManager.VisualStateGroups>
105-
<Border x:Name="MouseOverBorder"
106-
Opacity="0"
107-
Background="{TemplateBinding Foreground, Converter={StaticResource BrushRoundConverter}}"/>
108-
<wpf:Ripple Feedback="{TemplateBinding Foreground, Converter={StaticResource BrushRoundConverter}}"
109-
Focusable="False"
110-
MinHeight="48"
111-
Content="{TemplateBinding Content}"
112-
ContentTemplate="{TemplateBinding ContentTemplate}"
113-
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
114-
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
115-
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
116-
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
117-
Padding="{TemplateBinding Padding}"/>
118-
</Grid>
119-
</ControlTemplate>
120-
</Setter.Value>
121-
</Setter>
122-
</Style>
120+
<Style TargetType="Button" BasedOn="{StaticResource MaterialDesignPopupBoxButton}" />
123121
</wpf:Card.Resources>
124122
</wpf:Card>
125123
</controlzEx:PopupEx>

0 commit comments

Comments
 (0)