仅使用XAML绘制实心三角形

89

是否可能仅使用XAML绘制一个填充三角形(而不是在代码中实现)?

三角形应该像下面的图片一样,表示图表控件上的排序方向升序/降序,同时还有一个排序按钮:

enter image description here

编辑:感谢SpeziFish提供的解决方案:

升序:

<Polygon Points="0,0 8,5, 0,10" Stroke="Black" Fill="Black" />

降序:

<Polygon Points="8,0 0,5, 8,10" Stroke="Black" Fill="Black" />

1
用矩形来画三角形?你可以考虑使用 Path。请点击这里查看一个基本示例。 - erikH
@erikH:抱歉,主要要求是仅使用XAML。 - sll
3个回答

110
<Polygon Points="0,0 80,50, 0,100" Stroke="Black" Fill="Black" />

请参阅API示例


抱歉,主要要求是仅使用XAML,因此多边形是可以的。如何将其缩小10倍? - sll
1
将数字除以十。这些数字很容易就是角落的像素坐标(x,y)。 - SpeziFish
你怎么定位和旋转呢?我的意思是,我想画一个三角形,它会根据绑定在圆周上(圆周外)的位置进行定位。有什么想法吗? - John Demetriou
为了进行缩放,您可以添加“Stretch=Fill”,这样它就会被缩放以适应父容器,例如Button.Content。好的,我刚在@LongZheng的答案中看到了它 :) - dba

38

我希望将这些添加到他们的收藏中:

在此输入图片描述

    <Polygon Points="5,0 10,10, 0,10" Stroke="Black" Fill="Black" />

在这里输入图片描述

    <Polygon Points="0,0 5,10, 10,0" Stroke="Black" Fill="Black" />

26

使用路径

<Path Width="33" Height="37" Stretch="Fill" Stroke="Black" Fill="Black" Data="F1 M 319.344,237.333L 287.328,218.849L 287.328,255.818L 319.344,237.333 Z "/>
<Path Width="33" Height="37" Stretch="Fill" Stroke="Black" Fill="Black" Data="F1 M 287.328,237.333L 319.344,255.818L 319.344,218.849L 287.328,237.333 Z "/>

你怎么定位和旋转呢?我的意思是,我想画一个三角形,它会根据绑定在圆周上(圆周外)的位置进行定位。有什么想法吗? - John Demetriou
1
LayoutTransform可以帮助您解决问题。也许最好的方法是创建一个带有“Direction”依赖属性的Usercontrol,这样您就可以在不重写XAML的情况下随时放置它。 - dba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接