水平或垂直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>安德鲁
发布于 2012-12-06 04:30:51
这似乎是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)上找到这个bug
发布于 2012-12-06 04:27:45
它绝对会绘制超过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的值。
https://stackoverflow.com/questions/13731593
复制相似问题