WPF - Border &TextBlock -奇怪的行为
本文关键字:TextBlock Border WPF | 更新日期: 2023-09-27 18:10:28
我有这个非常简单的XAML标记
<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中的边框则会变得清晰而美观。
唯一的区别是在两个文本块中,第一个文本块的字体大小为20,第二个文本块的字体大小为19。
那么是什么触发了第一个边界的蓬松性…?
尝试在您的网格中使用uselayoutouning ="True" .
https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1& l = EN-US& k = k (System.Windows.FrameworkElement.UseLayoutRounding); k (VS.XamlEditor); k (TargetFrameworkMoniker -.NETFramework,版本% 3 dv4.5.2)和rd = true
<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>