首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【愚公系列】2023年09月 WPF控件专题 XAML介绍
2
【愚公系列】2023年09月 WPF控件专题 WPF应用程序组成
3
【愚公系列】2023年09月 WPF控件专题 Window窗体属性和事件
4
【愚公系列】2023年09月 WPF控件专题 Label、TextBox、PasswordBox控件介绍
5
【愚公系列】2023年09月 WPF控件专题 Button控件详解
6
【愚公系列】2023年09月 WPF控件专题 RadioButton控件详解
7
【愚公系列】2023年09月 WPF控件专题 CheckBox控件详解
8
【愚公系列】2023年09月 WPF控件专题 Image控件详解
9
【愚公系列】2023年09月 WPF控件专题 Border控件详解
10
【愚公系列】2023年09月 WPF控件专题 ComboBox控件详解
11
【愚公系列】2023年09月 WPF控件专题 ListBox控件详解
12
【愚公系列】2023年09月 WPF控件专题 DatePicker控件详解
13
【愚公系列】2023年09月 WPF控件专题 Calendar控件详解
14
【愚公系列】2023年09月 WPF控件专题 Slider控件详解
15
【愚公系列】2023年09月 WPF控件专题 ProgressBar控件详解
16
【愚公系列】2023年10月 WPF控件专题 StackPanel控件详解
17
【愚公系列】2023年10月 WPF控件专题 WrapPanel控件详解
18
【愚公系列】2023年10月 WPF控件专题 DockPanel控件详解
19
【愚公系列】2023年10月 WPF控件专题 Canvas控件详解
20
【愚公系列】2023年10月 WPF控件专题 Grid控件详解
21
【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解
22
【愚公系列】2023年10月 WPF控件专题 Expander控件详解
23
【愚公系列】2023年10月 WPF控件专题 TabControl控件详解
24
【愚公系列】2023年10月 WPF控件专题 Frame控件详解
25
【愚公系列】2023年10月 WPF控件专题 ListView控件详解
26
【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解
27
【愚公系列】2023年10月 WPF控件专题 Menu控件详解
28
【愚公系列】2023年10月 WPF控件专题 ContextMenu控件详解
29
【愚公系列】2023年10月 WPF控件专题 TreeView控件详解
30
【愚公系列】2023年10月 WPF控件专题 ToolBar控件详解
31
【愚公系列】2023年10月 WPF控件专题 ToolBarTray控件详解
32
【愚公系列】2023年10月 WPF控件专题 StatusBar控件详解
33
【愚公系列】2023年11月 WPF控件专题 MediaElement控件详解
34
【愚公系列】2023年11月 WPF控件专题 RichTextBox控件详解
35
【愚公系列】2023年11月 WPF控件专题 GridView控件详解
36
【愚公系列】2023年11月 WPF控件专题 Rectangle控件详解
37
【愚公系列】2023年11月 WPF控件专题 Popup控件详解
38
【愚公系列】2023年11月 WPF控件专题 OpenFileDialog控件详解
39
【愚公系列】2023年11月 WPF控件专题 SaveFileDialog控件详解
40
【愚公系列】2023年11月 WPF控件专题 RepeatButton控件详解
41
【愚公系列】2023年11月 WPF控件专题 Ellipse控件详解
42
【愚公系列】2023年11月 WPF控件专题 Polygon控件详解
43
【愚公系列】2023年11月 WPF控件专题 Path控件详解
44
【愚公系列】2023年11月 WPF控件专题 WindowFormsHost控件详解
45
【愚公系列】2023年11月 WPF控件专题 WebBrowser控件详解
46
【愚公系列】2023年11月 WPF控件专题 Validation控件详解
47
【愚公系列】2023年11月 WPF控件专题 Page控件详解
48
【愚公系列】2023年11月 WPF控件专题 PrintDialog控件详解
49
【愚公系列】2023年11月 WPF控件专题 Track控件详解
50
【愚公系列】2023年11月 WPF控件专题 Polyline控件详解

【愚公系列】2023年11月 WPF控件专题 Polyline控件详解

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。 🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。 🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。

原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。

自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。

🚀一、Polyline控件详解

Polyline控件是WPF中的一种形状控件,它可以用来绘制由一系列线段组成的连续的多边形。Polyline控件的xaml语法如下:

代码语言:html
复制
<Polyline Points="point1 point2 point3 ..." />

其中,Points属性指定了Polyline控件的顶点集合,这些顶点将依次连接成线段。点的坐标可以通过以下方式指定:

  • 直接指定坐标:point1="x1,y1"。
  • 使用Point结构体:point1="{x:Static Point}"。
  • 使用Binding绑定到一个ViewModel属性:point1="{Binding Path=Point1}"。

下面是一个绘制了一个三角形案例:

代码语言:html
复制
<Polyline Stroke="Red" StrokeThickness="2" Points="10,10 50,50 90,10"/>

这个Polyline控件使用了红色笔画,笔画宽度为2,它的三个顶点分别为(10,10),(50,50)和(90,10)。绘制出来的效果如下图所示:

🔎1.属性介绍

Polyline是一个WPF控件,它表示一个由线段组成的折线。以下是Polyline控件的属性:

  1. Points属性:指定折线的点集合。
  2. Stroke属性:指定折线的颜色。
  3. StrokeThickness属性:指定折线的宽度。
  4. StrokeStartLineCap属性:指定折线的起始端点样式。
  5. StrokeEndLineCap属性:指定折线的终止端点样式。
  6. StrokeLineJoin属性:指定折线的拐角样式。
  7. StrokeDashArray属性:指定折线的虚线模式。
  8. StrokeDashOffset属性:指定折线虚线模式的偏移量。
  9. RenderTransform属性:指定折线的变换。
  10. Opacity属性:指定折线的不透明度。
  11. Visibility属性:指定折线的可见性。
  12. Name属性:指定折线的名称,以便在代码中引用它。
  13. Tag属性:指定任意对象,以便以后可以使用它。
  14. ToolTip属性:指定折线的提示文本。
  15. IsHitTestVisible属性:指定折线是否可响应鼠标事件。

🔎2.常用场景

Polyline控件是WPF中的一个绘图控件,常用于绘制折线图、路线图等需要连接多个点的场景。以下是一些Polyline控件常用的场景:

  1. 绘制折线图:Polyline控件可以连接多个点,将它们连成一条线,用于绘制折线图。
  2. 绘制路线图:Polyline控件可以将多个位置点连接起来,用于绘制地图中的路线。
  3. 绘制图形:Polyline控件可以绘制多边形、星型等各种图形。
  4. 绘制手写笔迹:Polyline控件可以用于手写板等设备中,记录用户的手写笔迹。

🔎3.具体案例

Polyline控件用于绘制连续的直线段。以下是一个简单的WPF Polyline控件的案例,该控件将在窗口上绘制一个多边形:

首先,将以下命名空间添加到XAML文件中:

代码语言:html
复制
xmlns:local="clr-namespace:WpfApp1"

然后,添加Polyline控件:

代码语言:html
复制
<Polyline Points="{Binding Points}" Stroke="Red" StrokeThickness="2"/>

其中,Points属性通过数据绑定绑定到视图模型中的Points属性。

接下来,创建一个名为MyViewModel的视图模型类,并在其中添加一个名为Points的ObservableCollection属性:

代码语言:c#
复制
public class MyViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private ObservableCollection<Point> _points;
    public ObservableCollection<Point> Points
    {
        get { return _points; }
        set { _points = value; OnPropertyChanged("Points"); }
    }

    public MyViewModel()
    {
        // 添加多边形的顶点
        Points = new ObservableCollection<Point>();
        Points.Add(new Point(100, 100));
        Points.Add(new Point(150, 150));
        Points.Add(new Point(200, 100));
        Points.Add(new Point(200, 200));
        Points.Add(new Point(100, 200));
    }

    private void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

最后,在窗口的代码中,将视图模型实例化并将其设置为窗口的DataContext:

代码语言:c#
复制
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        DataContext = new MyViewModel();
    }
}

现在,启动程序后,将在窗口上看到绘制一个红色多边形。可以通过更改Points集合中的坐标来更改多边形的形状。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

举报
领券