我想用两个三角形绘制矩形。非常简单的任务。但是Silverlight无法处理它。
<Grid x:Name="LayoutRoot" UseLayoutRounding="False" Background="White">
<Polygon Fill="Black">
<Polygon.Points>
<Point X="10" Y="100"/>
<Point X="100" Y="10"/>
<Point X="100" Y="100"/>
</Polygon.Points>
</Polygon>
<Polygon Fill="Black">
<Polygon.Points>
<Point X="10" Y="10"/>
<Point X="100" Y="10"/>
<Point X="10" Y="100"/>
</Polygon.Points>
</Polygon>
</Grid>
逻辑上我编译这段代码时必须看到一个矩形。如果您尝试使用此代码,您将看到矩形,但您将在其中有一条白色的白线......
所以我想知道..有没有办法在Silverlight中用两个三角形绘制矩形(看起来像矩形)?
答案 0 :(得分:3)
这在Xaml中有点冗长,但是如果你以编程方式创建三角形它应该没关系,这样的事情怎么样:
<Canvas Background="#FFF9B15A" Width="200" Height="110" VerticalAlignment="Top" HorizontalAlignment="Left">
<Path Fill="Black" StrokeThickness="0">
<Path.Data>
<GeometryGroup>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="10,10">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="100,10" />
<LineSegment Point="10, 100" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="10,100">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="100,10" />
<LineSegment Point="100, 100" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</GeometryGroup>
</Path.Data>
</Path>
</Canvas>
这样你就可以用一个三角形合成一个单独的元素Path。您展示的方式会创建单独的元素,每个元素都将单独消除锯齿。
希望有所帮助。
塞尔吉奥
答案 1 :(得分:2)
您是否检查了Stroke
和StrokeThickness
属性?我不确定它们是否具有默认值,允许您绘制三角形之间没有任何空格的矩形。
<强>更新强> 这对你有帮助吗?
<Grid x:Name="LayoutRoot" UseLayoutRounding="False" Background="White">
<Polygon Fill="Black" Stroke="Black">
<Polygon.Points>
<Point X="10" Y="100"/>
<Point X="100" Y="10"/>
<Point X="100" Y="100"/>
</Polygon.Points>
</Polygon>
<Polygon Fill="Black" Stroke="Black">
<Polygon.Points>
<Point X="10" Y="10"/>
<Point X="10" Y="100"/>
<Point X="100" Y="10"/>
</Polygon.Points>
</Polygon>
</Grid>
答案 2 :(得分:1)
将.5添加到连接侧的点上。 Silverlight对边缘有点奇怪。查看矩形的边缘,看看它们是灰色还是纯黑色。您可能需要调整一些.5来解决这个问题。
<Grid x:Name="LayoutRoot" UseLayoutRounding="False" Background="White">
<Polygon Fill="Black">
<Polygon.Points>
<Point X="10" Y="100"/>
<Point X="100" Y="10"/>
<Point X="100" Y="100"/>
</Polygon.Points>
</Polygon>
<Polygon Fill="Black">
<Polygon.Points>
<Point X="10" Y="10"/>
<Point X="100.5" Y="10.5"/>
<Point X="10.5" Y="100.5"/>
</Polygon.Points>
</Polygon>
</Grid>