为什么边框在设置大宽度时会消失?

时间:2014-03-28 06:31:29

标签: c# wpf

我根据时间表调整边框大小。为什么当Width变得非常大时Border消失。例如,对于Width=100000Border可见,但对于Width=200000Border消失。

<StackPanel>
    <Border BorderThickness="0,0,0,1" BorderBrush="Black"  Height="100" Width="1000000">
    </Border>
</StackPanel>

1 个答案:

答案 0 :(得分:0)

事实证明,Border设置 BorderThickness 属性存在一些限制。 不幸的是,我无法确切地说出它们的外观,我试图使用ILSpy找到它们(你可以尝试寻找它们)。

我可以说一个限制:如果一个坐标的值超过 125,000 Border的行消失了。以下是我的示例列表:

Thickness    Width
---------  ---------
 0,0,0,1    125 001
 0,0,0,2    251 000
 0,0,0,3    375 001
 0,0,0,4    501 000

在所有这些情况下,不绘制线条。

作为替代方案,您可以每次增加厚度值(不是varinat),或者使用Line / Separator,对于它们,应该没有限制。您需要更改Margin的值,具体取决于条件或为他设置Visibility

Separator的示例:

<Separator Name="HighSignal"
           Width="1000000"
           Background="Black" 
           Height="2"
           Visibility="Collapsed"
           Margin="0,100,0,0" />

<Separator Name="LowSignal"
           Width="1000000" 
           Background="Black"
           Height="2"
           Visibility="Visible"
           Margin="0,0,0,0" />

Note: 对于分隔符,您可以创建Style,因为对他而言,键入一个控件(对于行 - Shape)。