正在删除按钮WPF中的阴影
本文关键字:阴影 WPF 按钮 删除 | 更新日期: 2023-09-27 18:22:18
我在WPF应用程序中为按钮创建了样式:
<Style x:Key="buttonStyle" TargetType="Button">
<Setter Property="Border.BorderBrush" Value="Black" />
<Setter Property="Border.BorderThickness" Value="1" />
<Setter Property="Border.Background" Value="White" />
<Setter Property="Height" Value="25" />
<Setter Property="Width" Value="100" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后我将这种风格应用于按钮控制:
<Button Style="{StaticResource buttonStyle}" Grid.Row="1" Grid.Column="1" Content="Press"/>
当我运行我的应用程序时,我会看到按钮下方和右侧的灰色阴影。此外,当我在Visual Studio视图中查看时,我看不到阴影。如何删除此效果?有人有想法或完全其他的方法吗?
你确定你看到的实际上是一个阴影吗?它可能只是一个模糊的边缘。WPF的布局系统基于与设备无关的像素,因此元素的边缘可能位于两个设备像素之间,在这种情况下,它可能会显得模糊。
通过在WPF 4.0及更高版本中对父元素设置UseLayoutRounding="True"
,可以强制设备像素捕捉;在早期版本中,您可以尝试SnapsToDevicePixels="True"
。