WPF破碎边缘

3
我在WPF中遇到了一个奇怪的问题。当我在表单上放置按钮时,设计时看起来很好,在Windows XP上也很好,但是当应用程序在Windows 7上运行时,边缘变得破碎。
以下是正常图标的屏幕截图(XP和设计时) Normal Edges 以下是边缘破碎的屏幕截图(Windows 7) Broken Edges 有什么想法吗?
编辑:
如请求所示,这是我用于按钮的代码
<Button Height="38" HorizontalAlignment="Center"  Name="cmdChange_dataset" VerticalAlignment="Center" Width="130" Grid.Column="0" >
                <Grid Width="120">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="auto"/>
                        <ColumnDefinition Width="*"/>

                    </Grid.ColumnDefinitions>
                    <Image Source="/Sales_express_lite_WPF;component/Images/note_to_self_32.png" Stretch="None" Grid.Column="0" HorizontalAlignment="Left"/>
                    <Label Content="Change DataSet" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Grid>
                <Button.Effect>
                    <DropShadowEffect BlurRadius="5" Color="Gray"  />
                </Button.Effect>
            </Button>

4
你能发布你的按钮 XAML 代码吗? - Rachel
@Rachel 原帖已添加代码示例,考虑到这一点,我应该在一开始就发布它。 - Kevin Ross
也许与此相关?http://blogs.msdn.com/b/text/archive/2009/08/27/layout-rounding.aspx - Alejandro Martin
@Alejandro Martin,没错,就这样做,把它发布为答案,我会接受/点赞的。 - Kevin Ross
1个回答

2
也许与这个有关?WPF文本博客上的布局舍入 博客文章摘要:
WPF的布局引擎经常给元素子像素位置。抗锯齿算法会导致这些子像素定位的元素在过滤后被渲染到多个物理像素上。这可能会导致模糊的线条和其他不良的渲染效果。在WPF 4.0中引入了布局舍入,允许开发人员强制WPF布局系统将元素定位在像素边界上,消除了许多子像素定位的负面影响。
已经引入了附加属性UseLayoutRounding,以允许切换布局舍入功能的开启或关闭。此属性可以是True或False。此属性的值由元素的子代继承。
<Grid UseLayoutRounding="True" Height="100" Width="200">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Rectangle Grid.Row="0" Fill="DarkBlue"/>
    <Rectangle Grid.Row="1" Fill="DarkBlue"/>
    <Rectangle Grid.Row="2" Fill="DarkBlue"/>
</Grid>

1
你能否在这里概括一下博客内容 - 这有助于防止URL更改时的情况。 - ChrisF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接