水平或垂直WPF线限制为125,000像素?

时间:2012-12-05 20:14:03

标签: wpf

水平或垂直WPF线是否限制为125,000像素?看下面的代码,绿线显示正确,但红色显示根本不显示,尽管只有0.01长。知道为什么吗?

<Window x:Class="DCView.Window11"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window11" Height="300" Width="300">
    <ScrollViewer>
        <Grid Width="150000">
            <Line X1="0" X2="125000.00" Y1="10" Y2="10" StrokeThickness="1" Stroke="Green"></Line>
            <Line X1="0" X2="125000.01" Y1="20" Y2="20" StrokeThickness="1" Stroke="Red"></Line>
        </Grid>     
    </ScrollViewer>
</Window>

安德鲁

2 个答案:

答案 0 :(得分:4)

这似乎是WPF处理矢量图形的一个限制。

要使其更复杂,请尝试更改StrokeThickness - 如果您将红线的StrokeThickness1设置为2,则会再次显示...直到你将长度增加到250000以上..然后它再次消失。

<Grid>
    <Line X1="0" X2="125000.00" Y1="10" Y2="10" StrokeThickness="1" Stroke="Green"></Line>
    <Line X1="0" X2="250000.00" Y1="20" Y2="20" StrokeThickness="2" Stroke="Red"></Line>
    <Line X1="0" X2="250000.01" Y1="30" Y2="30" StrokeThickness="2" Stroke="Blue"></Line>
</Grid>  

增加笔划粗细时,最大长度会增加。

另请注意,如果线条不完全水平或垂直,则长度限制似乎消失:

<Grid>
    <Line X1="0" X2="125000.00" Y1="10" Y2="10" StrokeThickness="1" Stroke="Green" />
    <Line X1="0" X2="125000.01" Y1="20" Y2="20.0001" StrokeThickness="1" Stroke="Red" />
</Grid>

您可以在connect:Disappearing Path (WPF)

上找到错误

答案 1 :(得分:0)

它肯定会超过150,000像素,在这种情况下看不到这条线有点奇怪,因为例如,如果你这样做了

<Line X1="0" X2="125000.01" Y1="20" Y2="20" StrokeThickness="2" Stroke="Red"></Line>

或者

<Line X1="0" X2="125000.01" Y1="21" Y2="20" StrokeThickness="1" Stroke="Red"></Line>

一切正常,可能有一个答案可以解释为什么,但很好找到,因为如果你动画X2的值,这会导致明显的闪烁。