wpf设置WindowChrome为圆角
时间: 2024-05-20 17:10:06 浏览: 179
对于wpf的WindowChrome圆角设置,你可以通过以下方式进行操作:
1.在XAML文件中,设置Window的Style属性为None,这将使窗口失去默认的最小化、最大化和关闭按钮等,我们需要手动添加这些按钮。
2.建立一个自定义的TitleBar UserControl,这个控件将包含我们手动添加的按钮和其他UI元素。
3.修改窗口的Template,使用自定义的TitleBar UserControl来替代默认的TitleBar。
4.在TitleBar UserControl中添加一个Ellipse Control,并设置它的RadiusX和RadiusY属性来指定圆角大小。
下面是一个简单的代码示例,仅供参考:
<Window x:Class="WpfTest.MainWindow"
...
WindowStyle="None">
<Window.Template>
<ControlTemplate TargetType="{x:Type Window}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<local:TitleBar Grid.Row="0"/>
<ContentPresenter Grid.Row="1"/>
</Grid>
</ControlTemplate>
</Window.Template>
</Window>
在TitleBar UserControl中添加一个Ellipse Control,并设置它的RadiusX和RadiusY属性,如下所示:
<UserControl x:Class="WpfTest.TitleBar"
...
Height="30">
<Grid>
<Ellipse Fill="#FF2D2D2D"
Width="30"
Height="30"
Margin="10"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RadiusX="15"
RadiusY="15"/>
<Button Style="{StaticResource WindowButtonStyle}"
Command="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=MinimizeCommand}"
Content="_"
ToolTip="最小化"
Margin="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<Button Style="{StaticResource WindowButtonStyle}"
Command="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=MaximizeCommand}"
Content="口"
ToolTip="最大化"
Margin="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"/>
<Button Style="{StaticResource WindowButtonStyle}"
Command="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=CloseCommand}"
Content="×"
ToolTip="关闭"
Margin="5,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Right"/>
</Grid>
</UserControl>
通过这种方法,你可以轻松地为WPF窗口创建圆角效果,并自定义窗口标题栏。
阅读全文