所以,我只想了解为什么在我的WPF应用程序中发生这种情况,因为它似乎在没有我想要的情况下添加“空格”或淡淡的线条......
我有以下XAML
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication3.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid x:Name="LayoutRoot" ShowGridLines="False" Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" CornerRadius="10,10,0,0" Height="10" Background="Black"/>
<Border Grid.Row="1" Background="Black">
</Border>
<Border Grid.Row="2" CornerRadius="0,0,10,10" Height="10" Background="Black"/>
</Grid>
<StackPanel Grid.Row="1">
<Button>Some Button</Button>
</StackPanel>
</Grid>
其中呈现以下窗口......
问题是如果仔细观察最后一行连接器,你会看到一条微弱的灰线......
但是,如果我用固定像素大小(即<RowDefinition Height="*"/>
)替换内部网格上的<RowDefinition Height="300"/>
,该线就会消失。为什么我正在使用*值时,它似乎是在添加这个“灰线”/“空格”?
答案 0 :(得分:4)
我认为问题是抗锯齿
答案 1 :(得分:2)
看起来布局舍入问题对我来说。如果您使用的是WPF 4,请尝试在外部网格上设置UseLayoutRounding="true"
。否则,请查看SnapToDevicePixels
。
http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.uselayoutrounding.aspx