Files
Shrlalgo.RvKits/WPFluent/Controls/MessageWindow/MessageWindow.xaml

166 lines
9.9 KiB
Plaintext
Raw Normal View History

2025-07-11 09:20:23 +08:00
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2025-07-11 09:20:23 +08:00
xmlns:controls="clr-namespace:WPFluent.Controls"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type controls:MessageWindow}">
<Setter Property="MaxWidth" Value="450" />
<Setter Property="BorderThickness" Value="0" />
2025-07-11 09:20:23 +08:00
<Setter Property="Background" Value="{DynamicResource SolidBackgroundFillColorBaseBrush}" />
<Setter Property="FontSize" Value="14" />
2025-07-11 09:20:23 +08:00
<Setter Property="Foreground" Value="{DynamicResource TextFillColorPrimaryBrush}" />
<Setter Property="TextElement.FontWeight" Value="Regular" />
<Setter Property="WindowStyle" Value="ToolWindow" />
<Setter Property="ShowInTaskbar" Value="False" />
<!--<Setter Property="AllowsTransparency" Value="False" />-->
<Setter Property="RenderOptions.BitmapScalingMode" Value="Fant" />
<Setter Property="ResizeMode" Value="NoResize" />
<Setter Property="WindowState" Value="Normal" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<!--
CaptionHeight removes the white block at the top of the application window.
GlassFrameThickness must be at least -1, otherwise the transparency for Mica will not work.
-->
<WindowChrome
CaptionHeight="1"
CornerRadius="0"
GlassFrameThickness="-1"
NonClientFrameEdges="None"
ResizeBorderThickness="0"
ResizeGripDirection="None"
UseAeroCaptionButtons="False" />
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:MessageWindow}">
<Grid Background="{TemplateBinding Background}">
<AdornerDecorator>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
2025-07-11 09:20:23 +08:00
<Border Background="{DynamicResource LayerFillColorAltBrush}" Grid.RowSpan="2" />
<TextBlock
FontWeight="SemiBold"
Foreground="{TemplateBinding Foreground}"
2025-07-11 09:20:23 +08:00
Grid.Row="0"
Margin="12,12,12,0"
Text="{TemplateBinding Title}"
x:Name="Title" />
<controls:TitleBar
Grid.Row="0"
ShowMaximize="False"
ShowMinimize="False" />
<ContentPresenter
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
2025-07-11 09:20:23 +08:00
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
Grid.Row="1"
Margin="12,10,12,12"
x:Name="ContentPresenter">
<ContentPresenter.Resources>
<Style BasedOn="{StaticResource {x:Type TextBlock}}" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="WrapWithOverflow" />
<Setter Property="TextAlignment" Value="Justify" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
<Border
2025-07-11 09:20:23 +08:00
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
BorderThickness="0,1,0,0"
CornerRadius="0"
Grid.Row="2"
HorizontalAlignment="Stretch"
2025-07-11 09:20:23 +08:00
Padding="12"
VerticalAlignment="Bottom">
<Grid>
<Grid.ColumnDefinitions>
2025-07-11 09:20:23 +08:00
<ColumnDefinition Width="*" x:Name="PrimaryColumn" />
<ColumnDefinition Width="8" x:Name="FirstSpacer" />
<ColumnDefinition Width="*" x:Name="SecondaryColumn" />
<ColumnDefinition Width="8" x:Name="SecondSpacer" />
<ColumnDefinition Width="*" x:Name="CloseColumn" />
</Grid.ColumnDefinitions>
<controls:Button
Appearance="{TemplateBinding PrimaryButtonAppearance}"
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type controls:MessageWindow}}, Path=TemplateButtonCommand, Mode=OneTime}"
CommandParameter="{x:Static controls:MessageBoxButton.Primary}"
Content="{TemplateBinding PrimaryButtonText}"
2025-07-11 09:20:23 +08:00
Grid.Column="0"
HorizontalAlignment="Stretch"
Icon="{TemplateBinding PrimaryButtonIcon}"
IsDefault="True" />
<controls:Button
2025-07-11 09:20:23 +08:00
Appearance="{TemplateBinding AccentButtonAppearance}"
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type controls:MessageWindow}}, Path=TemplateButtonCommand, Mode=OneTime}"
CommandParameter="{x:Static controls:MessageBoxButton.Accent}"
Content="{TemplateBinding AccentButtonText}"
Grid.Column="2"
HorizontalAlignment="Stretch"
2025-07-11 09:20:23 +08:00
Icon="{TemplateBinding AccentButtonIcon}" />
<controls:Button
Appearance="{TemplateBinding CloseButtonAppearance}"
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type controls:MessageWindow}}, Path=TemplateButtonCommand, Mode=OneTime}"
CommandParameter="{x:Static controls:MessageBoxButton.Close}"
Content="{TemplateBinding CloseButtonText}"
2025-07-11 09:20:23 +08:00
Grid.Column="4"
HorizontalAlignment="Stretch"
Icon="{TemplateBinding CloseButtonIcon}"
IsCancel="True" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="WindowState" Value="Maximized">
2025-07-11 09:20:23 +08:00
<Setter Property="Margin" TargetName="ContentPresenter" Value="8" />
</Trigger>
<Trigger Property="IsPrimaryButtonEnabled" Value="False">
2025-07-11 09:20:23 +08:00
<Setter Property="Width" TargetName="PrimaryColumn" Value="0" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsPrimaryButtonEnabled" Value="False" />
2025-07-11 09:20:23 +08:00
<Condition Property="IsAccentButtonEnabled" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
2025-07-11 09:20:23 +08:00
<Setter Property="Width" TargetName="SecondSpacer" Value="0" />
</MultiTrigger.Setters>
</MultiTrigger>
2025-07-11 09:20:23 +08:00
<Trigger Property="IsAccentButtonEnabled" Value="False">
<Setter Property="Width" TargetName="FirstSpacer" Value="0" />
<Setter Property="Width" TargetName="SecondaryColumn" Value="0" />
</Trigger>
<Trigger Property="PrimaryButtonText" Value="">
<Setter Property="IsPrimaryButtonEnabled" Value="False" />
</Trigger>
2025-07-11 09:20:23 +08:00
<Trigger Property="AccentButtonText" Value="">
<Setter Property="IsAccentButtonEnabled" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="BorderThickness" Value="6,6,6,0" />
<Setter Property="Topmost" Value="False" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>