我在使用 WPF 时遇到了一个相当奇怪的问题。当我将按钮放置在窗体上时,它们在设计时看起来很好,在 Windows XP 上看起来也很好,但当应用程序在 Windows 7 上运行时,边缘会损坏。
Here is a screen shot of the normal icons (XP and design time)
And here is one with the broken edges (windows 7)
有任何想法吗?
EDIT:
根据此处的要求,我用于按钮的代码
<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>
也许与此有关?WPF 文本博客上的布局舍入 http://blogs.msdn.com/b/text/archive/2009/08/27/layout-rounding.aspx
博客文章摘要:
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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)