Polygon叫多边形,与Polyline类似,都有一个Points属性,只不过,Polygon会把起点和终点连接起来。就拿上一节的例子,我们只是简单地把Polyline换成Polygon,其它设置保持不变。如下所示:
<Canvas x:Name="canvas">
<Polygon StrokeThickness="20" Points="30,30 200,30 50,250 220,250">
<Polygon.Stroke>
<LinearGradientBrush StartPoint="30,30"
EndPoint="220,250"
MappingMode="Absolute">
<GradientStop Color="Red" Offset="1" />
<GradientStop Color="Yellow" Offset="0.66" />
<GradientStop Color="Green" Offset="0" />
</LinearGradientBrush>
</Polygon.Stroke>
</Polygon>
</Canvas>
结果,在Polyline下面原本呈现的Z字形,在Polygon下面就变成了一个8字形,可以很明显的看到它的起点和终点相连起来了。
同理,我们在C#后端,也相应的修改成Polygon对象。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private int count = 0;
private Polygon polygon = null;
private void Window_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (count++ == 0)
{
polygon = new Polygon();
polygon.StrokeThickness = 5;
polygon.Stroke = Brushes.Red;
canvas.Children.Add(polygon);
}
var point = e.GetPosition(canvas);
polygon.Points.Add(point);
}
private void Window_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
count = 0;
}
}
最后,效果如上,用鼠标绘制出来的就是封闭的多边形。
当前课程源码下载:(注明:本站所有源代码请按标题搜索)
文件名:082-《Polygon多边形》-源代码
链接:https://pan.baidu.com/s/1yu-q4tUtl0poLVgmcMfgBA
提取码:wpff
——重庆教主 2023年10月19日