WPF - Border& TextBlock - 奇怪的行为

时间:2015-08-30 13:01:31

标签: c# wpf xaml border

我有这个非常简单的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>

...代码隐藏文件中没有代码。

但结果很奇怪......当应用程序运行时,第一个堆栈面板中的边框变得蓬松,第二个堆叠面板中的边框非常清晰。

唯一的区别在于两个文本块,第一个文本块的fontsize为20,第二个textblock的fontsize为19。

那么是什么触发了第一个边界的蓬松......?

1 个答案:

答案 0 :(得分:1)

在网格中尝试使用UseLayoutRounding =“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,Version%3Dv4.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>