C# WPF-边境及;TextBlock-奇怪的行为
我有一个非常简单的XAML标记C# WPF-边境及;TextBlock-奇怪的行为,c#,wpf,xaml,border,C#,Wpf,Xaml,Border,我有一个非常简单的XAML标记 <Grid Margin="20"> <Grid.RowDefinitions> <RowDefinition Height="50"/> <RowDefinition Height="50"/> </Grid.RowDefinitions> <StackPanel Orientation="Vertical" Grid.Row="0">
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical" Grid.Row="0">
<TextBlock Text="Hello World" FontSize="20"/>
<Border BorderBrush="Black" BorderThickness="0.25"/>
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Row="1">
<TextBlock Text="Hello World" FontSize="19" />
<Border BorderBrush="Black" BorderThickness="0.25"/>
</StackPanel>
</Grid>
。。。代码隐藏文件中没有代码
但结果非常奇怪…,当应用程序运行时,第一个stackpanel中的边框变得蓬松,第二个stackpanel中的边框锐利漂亮
唯一的区别在于两个textblock,第一个textblock的fontsize为20,第二个textblock的fontsize为19
那么,是什么触发了第一个边界的蓬松…?请尝试在网格中使用layouutrounding=“True”
如果您将第一个文本框上的FontSize设置为19?,则第一个边框将清晰可见。如果您使用的是18号边框,该怎么办?换一种字体怎么样?当使用介于字体的“预期”点大小之间的点大小时,我看到了奇怪的字体渲染。这是在标准分辨率显示器上吗?真奇怪,如果字体大小不规则,效果很好。我把fontsize改为21,问题就解决了。我没有做过任何特别的事情,比如改变字体或其他什么,所以是的,我认为这是字体和字体大小的组合。它在我的标准Microsoft Surface Pro 3上运行。我会换另一个尺码,笑一笑,然后合上这条线。非常感谢您的帮助:-)事实上,如果我在网格中设置UseLayoutRounding=“True”
,这两个边界将被隐藏。另一方面,如果我在第一个文本块(字体大小为20的文本块)中设置UseLayoutRounding=“True”
,则“蓬松效果”消失(VS 2013,.NET 4.0)
<Grid Margin="20" UseLayoutRounding="True">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical" Grid.Row="0">
<TextBlock Text="Hello World" FontSize="20"/>
<Border BorderBrush="Black" BorderThickness="0.25"/>
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Row="1">
<TextBlock Text="Hello World" FontSize="19" />
<Border BorderBrush="Black" BorderThickness="0.25"/>
</StackPanel>
</Grid>