我在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 BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}">
<ContentPresenter Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后我将这种风格用于Button控件:
<Button Style="{StaticResource buttonStyle}" Grid.Row="1" Grid.Column="1" Content="Press"/>
当我正在运行我的应用时,我会在按钮下方和右侧看到灰色阴影。此外,当我查看Visual Studio视图时,我看不到阴影。如何删除此效果?任何人都有想法或其他完整的方法吗?
答案 0 :(得分:3)
你确定你所看到的实际上是影子吗?它可能只是一个模糊的边缘。 WPF的布局系统基于与设备无关的像素,因此元素边缘可能位于两个设备像素之间,在这种情况下它可能看起来模糊。
您可以通过在WPF 4.0及更高版本中的父元素上设置UseLayoutRounding="True"
来强制设备像素捕捉;在早期版本中,您可以尝试SnapsToDevicePixels="True"
。