UWP XAML Border:意外溢出

时间:2016-05-19 20:35:53

标签: xaml uwp uwp-xaml

虽然有点思考,但我发现了一些(对我来说)XAML中Border元素的意外行为。也就是说,当一边的BorderThickness设置为0时,相邻边上的边框似乎会溢出。

为了证明我做了一个快速的样本

<Page
x:Class="TestApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

    <Canvas>
        <Rectangle Height="20" Width="300" Fill="Blue" Margin="50, 30, 0 ,0"  />
        <Border Height="20" Width="300" Background="Green" Margin="50, 50, 0 ,0" BorderBrush="Red" BorderThickness="0,0,0,4" />
    </Canvas>
</Page>

这会产生以下视觉表示(放大以获得更好的可见性)

1px overlay on left side

如您所见,红色边框与实际Border元素重叠1px。蓝色Rectangle用于验证它不是绿色背景,但红色边框不合适。

现在有趣的部分。当我编辑代码BorderThickness="4,0,0,4"时,左溢出消失了,但顶部有一个溢出。

1px overlay on top side

现在回答我的问题:

  1. 这是否溢出Border的预期行为?
  2. 有没有办法在不使用多个Rectangle的情况下避免这种情况,从而进一步增加复杂性?

0 个答案:

没有答案