feat: implement box shadow.

This commit is contained in:
rabbitism
2024-01-25 21:33:07 +08:00
parent 8d369290ff
commit 8bb6d51acb
2 changed files with 293 additions and 282 deletions

View File

@@ -8,19 +8,20 @@
<Setter Property="OverlayMaskBrush" Value="{DynamicResource OverlayDialogMaskBrush}" /> <Setter Property="OverlayMaskBrush" Value="{DynamicResource OverlayDialogMaskBrush}" />
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type u:DialogControl}" TargetType="u:DialogControl"> <ControlTheme x:Key="{x:Type u:DialogControl}" TargetType="u:DialogControl">
<Setter Property="CornerRadius" Value="12"></Setter> <Setter Property="CornerRadius" Value="12" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="u:DialogControl"> <ControlTemplate TargetType="u:DialogControl">
<Border <Border
Margin="8"
Padding="0" Padding="0"
Margin="4"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Classes="Shadow" Classes="Shadow"
ClipToBounds="False"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
ClipToBounds="True"
IsHitTestVisible="True" IsHitTestVisible="True"
Theme="{DynamicResource CardBorder}"> Theme="{DynamicResource CardBorder}">
<Border ClipToBounds="True" CornerRadius="{TemplateBinding CornerRadius}">
<Grid RowDefinitions="Auto, *"> <Grid RowDefinitions="Auto, *">
<ContentPresenter <ContentPresenter
Name="PART_ContentPresenter" Name="PART_ContentPresenter"
@@ -42,6 +43,7 @@
</Grid> </Grid>
</Grid> </Grid>
</Border> </Border>
</Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^:not(:modal) /template/ Panel#PART_TitleArea"> <Style Selector="^:not(:modal) /template/ Panel#PART_TitleArea">
@@ -97,23 +99,26 @@
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type u:DefaultDialogControl}" TargetType="u:DefaultDialogControl"> <ControlTheme x:Key="{x:Type u:DefaultDialogControl}" TargetType="u:DefaultDialogControl">
<Setter Property="CornerRadius" Value="12"></Setter> <Setter Property="CornerRadius" Value="12" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="u:DefaultDialogControl"> <ControlTemplate TargetType="u:DefaultDialogControl">
<Border <Border
Margin="10"
Padding="0" Padding="0"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
BoxShadow="0 0 8 0 #1A000000"
Classes="Shadow" Classes="Shadow"
ClipToBounds="False"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
ClipToBounds="True"
IsHitTestVisible="True" IsHitTestVisible="True"
Theme="{DynamicResource CardBorder}"> Theme="{DynamicResource CardBorder}">
<Border ClipToBounds="True" CornerRadius="{TemplateBinding CornerRadius}">
<Grid RowDefinitions="Auto, *, Auto"> <Grid RowDefinitions="Auto, *, Auto">
<ContentPresenter <ContentPresenter
Name="PART_ContentPresenter" Name="PART_ContentPresenter"
Grid.Row="1" Grid.Row="1"
Margin="24 8" Margin="24,8"
Content="{TemplateBinding Content}" /> Content="{TemplateBinding Content}" />
<Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto"> <Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto">
<Panel <Panel
@@ -124,32 +129,32 @@
<PathIcon <PathIcon
Name="PART_Icon" Name="PART_Icon"
Grid.Column="0" Grid.Column="0"
Margin="24 24 8 0"
Width="16" Width="16"
VerticalAlignment="Center" Height="16"
Height="16" /> Margin="24,24,8,0"
VerticalAlignment="Center" />
<TextBlock <TextBlock
Name="PART_Title" Name="PART_Title"
Grid.Column="1" Grid.Column="1"
Margin="0 24 0 0 " Margin="0,24,0,0"
FontWeight="Bold"
FontSize="16"
TextWrapping="Wrap"
VerticalAlignment="Center" VerticalAlignment="Center"
FontSize="16"
FontWeight="Bold"
IsHitTestVisible="False" IsHitTestVisible="False"
IsVisible="{TemplateBinding Title, IsVisible="{TemplateBinding Title,
Converter={x:Static ObjectConverters.IsNotNull}}" Converter={x:Static ObjectConverters.IsNotNull}}"
Text="{TemplateBinding Title}" /> Text="{TemplateBinding Title}"
TextWrapping="Wrap" />
<Button <Button
Name="{x:Static u:MessageBoxWindow.PART_CloseButton}" Name="{x:Static u:MessageBoxWindow.PART_CloseButton}"
Grid.Column="2" Grid.Column="2"
Margin="0 24 24 0" Margin="0,24,24,0"
DockPanel.Dock="Right" DockPanel.Dock="Right"
Theme="{DynamicResource CloseButton}" /> Theme="{DynamicResource CloseButton}" />
</Grid> </Grid>
<StackPanel <StackPanel
Grid.Row="2" Grid.Row="2"
Margin="24 0 24 24" Margin="24,0,24,24"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Orientation="Horizontal"> Orientation="Horizontal">
<Button <Button
@@ -161,141 +166,142 @@
Name="{x:Static u:DefaultDialogControl.PART_NoButton}" Name="{x:Static u:DefaultDialogControl.PART_NoButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Danger" Classes="Danger"
Theme="{DynamicResource SolidButton}" Content="否"
Content="否" /> Theme="{DynamicResource SolidButton}" />
<Button <Button
Name="{x:Static u:DefaultDialogControl.PART_YesButton}" Name="{x:Static u:DefaultDialogControl.PART_YesButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Primary" Classes="Primary"
Theme="{DynamicResource SolidButton}" Content="是"
Content="是" /> Theme="{DynamicResource SolidButton}" />
<Button <Button
Name="{x:Static u:DefaultDialogControl.PART_OKButton}" Name="{x:Static u:DefaultDialogControl.PART_OKButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Primary" Classes="Primary"
Theme="{DynamicResource SolidButton}" Content="确认"
Content="确认" /> Theme="{DynamicResource SolidButton}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>
</Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^[Mode=None]"> <Style Selector="^[Mode=None]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="False"></Setter> <Setter Property="IsVisible" Value="False" />
</Style> </Style>
<Style Selector="^ /template/ TextBlock#PART_Title"> <Style Selector="^ /template/ TextBlock#PART_Title">
<Setter Property="Margin" Value="24 24 0 0"></Setter> <Setter Property="Margin" Value="24 24 0 0" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Info]"> <Style Selector="^[Mode=Info]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogInformationIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogInformationIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Warning]"> <Style Selector="^[Mode=Warning]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogWarningIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogWarningIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiOrange6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiOrange6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Warning"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Warning" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Warning"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Warning" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Error]"> <Style Selector="^[Mode=Error]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogErrorIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogErrorIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiRed6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiRed6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Question]"> <Style Selector="^[Mode=Question]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogQuestionIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogQuestionIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Success]"> <Style Selector="^[Mode=Success]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogSuccessIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogSuccessIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiGreen6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiGreen6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Success"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Success" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Success"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Success" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
@@ -390,7 +396,7 @@
<Grid Grid.Row="0" ColumnDefinitions="*, Auto"> <Grid Grid.Row="0" ColumnDefinitions="*, Auto">
<TextBlock <TextBlock
Grid.Column="0" Grid.Column="0"
Margin="24, 24,0,0" Margin="24,24,0,0"
FontSize="14" FontSize="14"
FontWeight="Bold" FontWeight="Bold"
Text="{TemplateBinding Title}" Text="{TemplateBinding Title}"
@@ -443,7 +449,7 @@
<ContentPresenter <ContentPresenter
Name="PART_ContentPresenter" Name="PART_ContentPresenter"
Grid.Row="1" Grid.Row="1"
Margin="24 8" Margin="24,8"
Content="{TemplateBinding Content}" /> Content="{TemplateBinding Content}" />
<Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto"> <Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto">
<Panel <Panel
@@ -454,32 +460,32 @@
<PathIcon <PathIcon
Name="PART_Icon" Name="PART_Icon"
Grid.Column="0" Grid.Column="0"
Margin="24 24 8 0"
Width="16" Width="16"
VerticalAlignment="Center" Height="16"
Height="16" /> Margin="24,24,8,0"
VerticalAlignment="Center" />
<TextBlock <TextBlock
Name="PART_Title" Name="PART_Title"
Grid.Column="1" Grid.Column="1"
Margin="0 24 0 0 " Margin="0,24,0,0"
FontWeight="Bold"
FontSize="16"
TextWrapping="Wrap"
VerticalAlignment="Center" VerticalAlignment="Center"
FontSize="16"
FontWeight="Bold"
IsHitTestVisible="False" IsHitTestVisible="False"
IsVisible="{TemplateBinding Title, IsVisible="{TemplateBinding Title,
Converter={x:Static ObjectConverters.IsNotNull}}" Converter={x:Static ObjectConverters.IsNotNull}}"
Text="{TemplateBinding Title}" /> Text="{TemplateBinding Title}"
TextWrapping="Wrap" />
<Button <Button
Name="{x:Static u:MessageBoxWindow.PART_CloseButton}" Name="{x:Static u:MessageBoxWindow.PART_CloseButton}"
Grid.Column="2" Grid.Column="2"
Margin="0 24 24 0" Margin="0,24,24,0"
DockPanel.Dock="Right" DockPanel.Dock="Right"
Theme="{DynamicResource CloseButton}" /> Theme="{DynamicResource CloseButton}" />
</Grid> </Grid>
<StackPanel <StackPanel
Grid.Row="2" Grid.Row="2"
Margin="24 0 24 24" Margin="24,0,24,24"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Orientation="Horizontal"> Orientation="Horizontal">
<Button <Button
@@ -491,20 +497,20 @@
Name="{x:Static u:DefaultDialogControl.PART_NoButton}" Name="{x:Static u:DefaultDialogControl.PART_NoButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Danger" Classes="Danger"
Theme="{DynamicResource SolidButton}" Content="否"
Content="否" /> Theme="{DynamicResource SolidButton}" />
<Button <Button
Name="{x:Static u:DefaultDialogControl.PART_YesButton}" Name="{x:Static u:DefaultDialogControl.PART_YesButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Primary" Classes="Primary"
Theme="{DynamicResource SolidButton}" Content="是"
Content="是" /> Theme="{DynamicResource SolidButton}" />
<Button <Button
Name="{x:Static u:DefaultDialogControl.PART_OKButton}" Name="{x:Static u:DefaultDialogControl.PART_OKButton}"
Margin="8,0,0,0" Margin="8,0,0,0"
Classes="Primary" Classes="Primary"
Theme="{DynamicResource SolidButton}" Content="确认"
Content="确认" /> Theme="{DynamicResource SolidButton}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Panel> </Panel>
@@ -512,120 +518,120 @@
</Setter> </Setter>
<Style Selector="^[Mode=None]"> <Style Selector="^[Mode=None]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="False"></Setter> <Setter Property="IsVisible" Value="False" />
</Style> </Style>
<Style Selector="^ /template/ TextBlock#PART_Title"> <Style Selector="^ /template/ TextBlock#PART_Title">
<Setter Property="Margin" Value="24 24 0 0"></Setter> <Setter Property="Margin" Value="24 24 0 0" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Info]"> <Style Selector="^[Mode=Info]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogInformationIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogInformationIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Warning]"> <Style Selector="^[Mode=Warning]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogWarningIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogWarningIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiOrange6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiOrange6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Warning"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Warning" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Warning"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Warning" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
<Setter Property="Theme" Value="{DynamicResource SolidButton}"></Setter> <Setter Property="Theme" Value="{DynamicResource SolidButton}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Error]"> <Style Selector="^[Mode=Error]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogErrorIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogErrorIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiRed6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiRed6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Question]"> <Style Selector="^[Mode=Question]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogQuestionIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogQuestionIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Primary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Primary" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
<Style Selector="^[Mode=Success]"> <Style Selector="^[Mode=Success]">
<Style Selector="^ /template/ PathIcon#PART_Icon"> <Style Selector="^ /template/ PathIcon#PART_Icon">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True" />
<Setter Property="Data" Value="{DynamicResource DialogSuccessIconGlyph}"></Setter> <Setter Property="Data" Value="{DynamicResource DialogSuccessIconGlyph}" />
<Setter Property="Foreground" Value="{DynamicResource SemiGreen6}"></Setter> <Setter Property="Foreground" Value="{DynamicResource SemiGreen6}" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_OKButton"> <Style Selector="^ /template/ Button#PART_OKButton">
<Setter Property="theme:ClassHelper.Classes" Value="Success"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Success" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_YesButton"> <Style Selector="^ /template/ Button#PART_YesButton">
<Setter Property="theme:ClassHelper.Classes" Value="Success"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Success" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_NoButton"> <Style Selector="^ /template/ Button#PART_NoButton">
<Setter Property="theme:ClassHelper.Classes" Value="Danger"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Danger" />
</Style> </Style>
<Style Selector="^ /template/ Button#PART_CancelButton"> <Style Selector="^ /template/ Button#PART_CancelButton">
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary"></Setter> <Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
</Style> </Style>
</Style> </Style>
</ControlTheme> </ControlTheme>

View File

@@ -35,21 +35,24 @@
<Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" /> <Panel Margin="{TemplateBinding WindowDecorationMargin}" Background="Transparent" />
<ChromeOverlayLayer /> <ChromeOverlayLayer />
<Grid RowDefinitions="Auto, *, Auto"> <Grid RowDefinitions="Auto, *, Auto">
<Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto" Margin="24 24 24 0"> <Grid
Grid.Row="0"
Margin="24,24,24,0"
ColumnDefinitions="Auto, *, Auto">
<PathIcon <PathIcon
Name="PART_Icon" Name="PART_Icon"
Grid.Column="0" Grid.Column="0"
Width="24" Width="24"
Height="24" Height="24"
Margin="0 0 8 0" Margin="0,0,8,0"
IsHitTestVisible="False" VerticalAlignment="Center"
VerticalAlignment="Center" /> IsHitTestVisible="False" />
<TextBlock <TextBlock
Grid.Column="1" Grid.Column="1"
VerticalAlignment="Center"
FontSize="16" FontSize="16"
FontWeight="Bold" FontWeight="Bold"
IsHitTestVisible="False" IsHitTestVisible="False"
VerticalAlignment="Center"
Text="{TemplateBinding Title}" Text="{TemplateBinding Title}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap" /> TextWrapping="NoWrap" />
@@ -146,7 +149,7 @@
<ControlTheme x:Key="{x:Type u:MessageBoxControl}" TargetType="u:MessageBoxControl"> <ControlTheme x:Key="{x:Type u:MessageBoxControl}" TargetType="u:MessageBoxControl">
<Setter Property="CornerRadius" Value="12" /> <Setter Property="CornerRadius" Value="12" />
<Setter Property="Padding" Value="48 24"></Setter> <Setter Property="Padding" Value="48 24" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="u:MessageBoxControl"> <ControlTemplate TargetType="u:MessageBoxControl">
<Border <Border
@@ -154,10 +157,11 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Classes="Shadow" Classes="Shadow"
ClipToBounds="True" ClipToBounds="False"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
IsHitTestVisible="True" IsHitTestVisible="True"
Theme="{DynamicResource CardBorder}"> Theme="{DynamicResource CardBorder}">
<Border ClipToBounds="True" CornerRadius="{TemplateBinding CornerRadius}">
<Grid RowDefinitions="Auto, *, Auto"> <Grid RowDefinitions="Auto, *, Auto">
<Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto"> <Grid Grid.Row="0" ColumnDefinitions="Auto, *, Auto">
<Panel <Panel
@@ -171,17 +175,17 @@
Width="24" Width="24"
Height="24" Height="24"
Margin="24,24,8,0" Margin="24,24,8,0"
IsHitTestVisible="False" VerticalAlignment="Center"
VerticalAlignment="Center" /> IsHitTestVisible="False" />
<TextBlock <TextBlock
Name="PART_Title" Name="PART_Title"
Grid.Column="1" Grid.Column="1"
Margin="0,24,0,0" Margin="0,24,0,0"
FontSize="16"
VerticalAlignment="Center" VerticalAlignment="Center"
FontSize="16"
FontWeight="Bold" FontWeight="Bold"
Text="{TemplateBinding Title}"
IsHitTestVisible="False" IsHitTestVisible="False"
Text="{TemplateBinding Title}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap" /> TextWrapping="NoWrap" />
<Button <Button
@@ -237,6 +241,7 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>
</Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^[MessageIcon=None] /template/ PathIcon#PART_Icon"> <Style Selector="^[MessageIcon=None] /template/ PathIcon#PART_Icon">