解决方法@H_404_8@
据我记得(4年以前),您可以创建一个使用WPF窗口的样式.
这是样例窗口样式:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="MainWindow"
TargetType="{x:Type Window}">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid>
<Border x:Name="MainBorder"
BorderBrush="{DynamicResource MainWindowBorderBrush}"
BorderThickness="1"
CornerRadius="2"
Background="{DynamicResource MainWindowBackgroundBrush}">
<DockPanel LastChildFill="True">
<Rectangle x:Name="PART_LEFT_BORDER"
Width="2"
Cursor="SizeWE">
<Rectangle.Fill>
<SolidColorBrush Color="Transparent" />
</Rectangle.Fill>
</Rectangle>
<Rectangle x:Name="PART_RIGHT_BORDER"
Cursor="SizeWE"
Width="2"
DockPanel.Dock="Right">
<Rectangle.Fill>
<SolidColorBrush Color="Transparent" />
</Rectangle.Fill>
</Rectangle>
<Rectangle x:Name="PART_TOP_BORDER"
Cursor="SizeNS"
DockPanel.Dock="Top"
Height="2">
<Rectangle.Fill>
<SolidColorBrush Color="Transparent" />
</Rectangle.Fill>
</Rectangle>
<Rectangle x:Name="PART_BOTTOM_BORDER"
Cursor="SizeNS"
Height="2"
DockPanel.Dock="Bottom">
<Rectangle.Fill>
<SolidColorBrush Color="Transparent" />
</Rectangle.Fill>
</Rectangle>
<Border x:Name="PART_TITLEBAR"
Margin="2,2,2"
Height="40"
DockPanel.Dock="Top"
CornerRadius="2"
Background="Transparent">
<DockPanel LastChildFill="False">
<TextBlock Margin="8,4"
VerticalAlignment="Center"
FontStretch="UltraExpanded"
Foreground="Black"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap"
Text="{TemplateBinding Title}"
FontSize="16" />
<Button x:Name="PART_CLOSE"
DockPanel.Dock="Right"
Style="{DynamicResource FlatButton}"
VerticalAlignment="Center"
Margin="0,4,0">
<Image Source="/MixModes.Synergy.Resources;
component/Resources/Close.png"
Stretch="None"
Margin="4" />
</Button>
<Button x:Name="PART_MAXIMIZE_RESTORE"
DockPanel.Dock="Right"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{DynamicResource FlatButton}">
<Image x:Name="MaximizeRestoreImage"
Source="/MixModes.Synergy.Resources;
component/Resources/Restore.png"
Stretch="None"
Margin="4" />
</Button>
<Button x:Name="PART_MINIMIZE"
HorizontalAlignment="Center"
Style="{DynamicResource FlatButton}"
VerticalAlignment="Center"
DockPanel.Dock="Right">
<Image Margin="4"
Source="/MixModes.Synergy.
Resources;component/Resources/
Minimize.png"
Stretch="None" />
</Button>
</DockPanel>
</Border>
<!-- Title bar separator-->
<Border Height="1"
DockPanel.Dock="Top"
Background="{DynamicResource
MainWindowTitleBarSeparator}" />
<!-- Actual Window Content -->
<AdornerDecorator DockPanel.Dock="Bottom">
<ContentPresenter />
</AdornerDecorator>
</DockPanel>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource=
{RelativeSource Self},Path=Maximized}"
Value="False">
<Setter TargetName="MaximizeRestoreImage"
Property="Source"
Value="/MixModes.Synergy.Resources;
component/Resources/Maximize.png" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
结果将如下所示:
这是样例窗口样式:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style x:Key="MainWindow" TargetType="{x:Type Window}"> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Window}"> <Grid> <Border x:Name="MainBorder" BorderBrush="{DynamicResource MainWindowBorderBrush}" BorderThickness="1" CornerRadius="2" Background="{DynamicResource MainWindowBackgroundBrush}"> <DockPanel LastChildFill="True"> <Rectangle x:Name="PART_LEFT_BORDER" Width="2" Cursor="SizeWE"> <Rectangle.Fill> <SolidColorBrush Color="Transparent" /> </Rectangle.Fill> </Rectangle> <Rectangle x:Name="PART_RIGHT_BORDER" Cursor="SizeWE" Width="2" DockPanel.Dock="Right"> <Rectangle.Fill> <SolidColorBrush Color="Transparent" /> </Rectangle.Fill> </Rectangle> <Rectangle x:Name="PART_TOP_BORDER" Cursor="SizeNS" DockPanel.Dock="Top" Height="2"> <Rectangle.Fill> <SolidColorBrush Color="Transparent" /> </Rectangle.Fill> </Rectangle> <Rectangle x:Name="PART_BOTTOM_BORDER" Cursor="SizeNS" Height="2" DockPanel.Dock="Bottom"> <Rectangle.Fill> <SolidColorBrush Color="Transparent" /> </Rectangle.Fill> </Rectangle> <Border x:Name="PART_TITLEBAR" Margin="2,2,2" Height="40" DockPanel.Dock="Top" CornerRadius="2" Background="Transparent"> <DockPanel LastChildFill="False"> <TextBlock Margin="8,4" VerticalAlignment="Center" FontStretch="UltraExpanded" Foreground="Black" TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" Text="{TemplateBinding Title}" FontSize="16" /> <Button x:Name="PART_CLOSE" DockPanel.Dock="Right" Style="{DynamicResource FlatButton}" VerticalAlignment="Center" Margin="0,4,0"> <Image Source="/MixModes.Synergy.Resources; component/Resources/Close.png" Stretch="None" Margin="4" /> </Button> <Button x:Name="PART_MAXIMIZE_RESTORE" DockPanel.Dock="Right" HorizontalAlignment="Center" VerticalAlignment="Center" Style="{DynamicResource FlatButton}"> <Image x:Name="MaximizeRestoreImage" Source="/MixModes.Synergy.Resources; component/Resources/Restore.png" Stretch="None" Margin="4" /> </Button> <Button x:Name="PART_MINIMIZE" HorizontalAlignment="Center" Style="{DynamicResource FlatButton}" VerticalAlignment="Center" DockPanel.Dock="Right"> <Image Margin="4" Source="/MixModes.Synergy. Resources;component/Resources/ Minimize.png" Stretch="None" /> </Button> </DockPanel> </Border> <!-- Title bar separator--> <Border Height="1" DockPanel.Dock="Top" Background="{DynamicResource MainWindowTitleBarSeparator}" /> <!-- Actual Window Content --> <AdornerDecorator DockPanel.Dock="Bottom"> <ContentPresenter /> </AdornerDecorator> </DockPanel> </Border> </Grid> <ControlTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource= {RelativeSource Self},Path=Maximized}" Value="False"> <Setter TargetName="MaximizeRestoreImage" Property="Source" Value="/MixModes.Synergy.Resources; component/Resources/Maximize.png" /> </DataTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>
结果将如下所示: