水平或垂直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>
安德鲁
答案 0 :(得分:4)
这似乎是WPF处理矢量图形的一个限制。
要使其更复杂,请尝试更改StrokeThickness
- 如果您将红线的StrokeThickness
从1
设置为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的值,这会导致明显的闪烁。