Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Horizontal or vertical WPF Lines limited to 125,000 pixels?

Tags:

wpf

Are horizontal or vertical WPF Lines limited to 125,000 pixels? Looking at the following code the Green line displays correctly but the Red one does not display at all despite being just 0.01 longer. Any idea why?

<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>

Andrew

like image 842
Andrew Jones Avatar asked Dec 05 '12 20:12

Andrew Jones


1 Answers

This seems to be a limitation in WPF's handling of vector graphics.

To make it more complicated, try changing the StrokeThickness - if you set the StrokeThickness of your red line from 1 to 2, it displays again... until you increase the length above 250000.. Then it vanishes again.

<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>  

The max length goes up as you increase your stroke thickness.

Also Note that if the line wasn't perfectly horizontal or vertical, the length limit seems to vanish:

<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>

You can find the bug written up on connect: Disappearing Path (WPF)

like image 96
Philip Rieck Avatar answered Dec 07 '22 22:12

Philip Rieck