[Mono-bugs] [Bug 345888] [cairo] No support for different Start and End LineCaps

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Dec 11 17:12:03 EST 2007


https://bugzilla.novell.com/show_bug.cgi?id=345888

User spouliot at novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=345888#c2


Sebastien Pouliot <spouliot at novell.com> changed:

           What    |Removed                                         |Added
----------------------------------------------------------------------------
         AssignedTo|mono-bugs at ximian.com                            |spouliot at novell.com
             Status|NEW                                             |ASSIGNED




--- Comment #2 from Sebastien Pouliot <spouliot at novell.com>  2007-12-11 15:12:03 MST ---
It is possible to simulate different caps (or no caps) on both starts and ends
by using 2 or 3 lines. E.g. 

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
        <Line Stroke="Red" StrokeThickness="5" StrokeStartLineCap="Flat"
StrokeEndLineCap="Flat" X1="10" Y1="10" X2="10" Y2="50" />

        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="10" Y1="60" X2="10" Y2="100" />

        <Line Stroke="Red" StrokeThickness="5" X1="20" Y1="60" X2="20" Y2="100"
/>
        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="20" Y1="60" X2="20" Y2="60.1" />
        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="20" Y1="100" X2="20" Y2="100.1" />

        <Line Stroke="Green" StrokeThickness="5" X1="30" Y1="60" X2="30"
Y2="100" />
        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="30" Y1="60" X2="30" Y2="60.1" />
        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="30" Y1="100" X2="30" Y2="100.1" />

        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="40" Y1="60" X2="40" Y2="80" />
        <Line Stroke="Green" StrokeThickness="5" StrokeStartLineCap="Round"
StrokeEndLineCap="Round" X1="40" Y1="80" X2="40" Y2="100" />

        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="10" Y1="110" X2="10" Y2="150" />

        <Line Stroke="Red" StrokeThickness="5" X1="20" Y1="110" X2="20"
Y2="150" />
        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="20" Y1="110" X2="20" Y2="110.1" />
        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="20" Y1="150" X2="20" Y2="150.1" />

        <Line Stroke="Blue" StrokeThickness="5" X1="30" Y1="110" X2="30"
Y2="150" />
        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="30" Y1="110" X2="30" Y2="110.1" />
        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="30" Y1="150" X2="30" Y2="150.1" />

        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="40" Y1="110" X2="40" Y2="130" />
        <Line Stroke="Blue" StrokeThickness="5" StrokeStartLineCap="Square"
StrokeEndLineCap="Square" X1="40" Y1="130" X2="40" Y2="150" />

        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="10" Y1="160" X2="10" Y2="200" />

        <Line Stroke="Red" StrokeThickness="5" X1="20" Y1="160" X2="20"
Y2="200" />
        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="20" Y1="160" X2="20" Y2="160.1" />
        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="20" Y1="200" X2="20" Y2="200.1" />

        <Line Stroke="Black" StrokeThickness="5" X1="30" Y1="160" X2="30"
Y2="200" />
        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="30" Y1="160" X2="30" Y2="160.1" />
        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="30" Y1="200" X2="30" Y2="200.1" />

        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="40" Y1="160" X2="40" Y2="180" />
        <Line Stroke="Black" StrokeThickness="5" StrokeStartLineCap="Triangle"
StrokeEndLineCap="Triangle" X1="40" Y1="180" X2="40" Y2="200" />
</Canvas>

In both case the rendering isn't perfect, but looks better with 3 lines (but it
should be possible to get the same results with 2 lines, one very short, one as
long as needed).

Of course performance would suffer a bit but this (different caps) doesn't seem
to be a common case and many shapes don't support them (e.g. ellipses).


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list