博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF学习04:2D绘图 使用Shape绘基本图形
阅读量:6416 次
发布时间:2019-06-23

本文共 2389 字,大约阅读时间需要 7 分钟。

    我们将使用Shape进行基本图形绘制。

例子

    一个可移动的矩形方框:

  

    XAML代码:

 

    后台代码:

private void Window_KeyUp(object sender, KeyEventArgs e){    switch (e.Key)    {        case Key.Up:            RectangleCanvasTop += 10;            break;        case Key.Down:            RectangleCanvasTop -= 10;            break;        case Key.Right:            RectangleCanvasLeft += 10;            break;        case Key.Left:            RectangleCanvasLeft -= 10;            break;        default:            break;    }    Canvas.SetLeft(DisplayRectangle, RectangleCanvasLeft);    Canvas.SetTop(DisplayRectangle, RectangleCanvasTop);}


 

Shape简介

   以下是各类Shape的继承结构:

   

    各类Shape均继承于Shape,而Shape与其它的WPF控件一样,也继承于FrameworkElement,即其它控件支持的功能(各种事件,属性),Shape也是支持的,这是使用Shape绘图的优点。

    例子中,Shape是放在Canvas中的,Shape亦可放在其它的Layout控件中。由于Canvas提供了绝对定位的支持,故而常常与Shape搭配出现。


 

Ellipse:

  

    XAML实现:

 

    后台代码实现:

var circle = new Ellipse(){    Width = 100,    Height = 100,    Fill = new SolidColorBrush(Colors.White)};var ellipse = new Ellipse(){    Width = 50,    Height = 100,    Fill = new SolidColorBrush(Colors.White)};Canvas.SetLeft(ellipse, 100);MainCanvas.Children.Add(circle);MainCanvas.Children.Add(ellipse);
 

 

Line

  

   XAML实现:

    后台代码实现:

MainCanvas.Children.Add(new Line(){    X1 = 0,    X2 = 100,    Y1 = 100,    Y2 = 0,    Stroke = new SolidColorBrush(Colors.White)});
 


 

Polygon

   

    XAML实现:

    后台代码:

var polygon1PointsCollection = new PointCollection();polygon1PointsCollection.Add(new Point() { X = 0, Y = 0 });polygon1PointsCollection.Add(new Point() { X = 50, Y = 50 });polygon1PointsCollection.Add(new Point() { X = 50, Y = 100 });var polygon1 = new Polygon(){    Stroke = new SolidColorBrush(Colors.Black),    Points = polygon1PointsCollection};MainCanvas.Children.Add(polygon1);var polygon2PointsCollection = new PointCollection();polygon2PointsCollection.Add(new Point() { X = 0, Y = 0 });polygon2PointsCollection.Add(new Point() { X = 50, Y = 50 });polygon2PointsCollection.Add(new Point() { X = 50, Y = 100 });polygon2PointsCollection.Add(new Point() { X = 100, Y = 50 });var polygon2 = new Polygon(){    Stroke = new SolidColorBrush(Colors.Black),    Points = polygon2PointsCollection,    Fill = new SolidColorBrush(Colors.White)};Canvas.SetLeft(polygon2, 100);MainCanvas.Children.Add(polygon2);

 


 

虚线边框:

    XAML实现:

转载于:https://www.cnblogs.com/E-WALKER/p/4381410.html

你可能感兴趣的文章
[转]javascript 读取和写入文件,js如何读取文件,js写入文件,js文件操作,js文件夹...
查看>>
JS 12
查看>>
【转】数据归一化和两种常用的归一化方法
查看>>
【转】sql语句优化
查看>>
On coin-tossing measure
查看>>
调用日志输出错误:TypeError: 'int' object is not callable等
查看>>
神秘的 shadow-dom 浅析
查看>>
家庭反对死一批,朋友同事嘲笑死一批,害怕失败死一批,徘徊等待死一批「没有时间」又死一批(转)...
查看>>
java中HashMap在多线程环境下引起CPU100%的问题解决(转)
查看>>
Juqery的一些应用
查看>>
HBase应用笔记:通过HBase Shell与HBase交互(转自:Taobao QA Team)
查看>>
SAP 图形页面
查看>>
Selenium2学习(十一)-- select下拉框
查看>>
echarts系列之动态修改柱状图颜色
查看>>
(4.1)LingPipe在Eclipse中的运行
查看>>
表格模版编辑器的一些思路
查看>>
ActiveMQ内存配置和密码设置
查看>>
Unity5 BakeGI(Mixed Lighting)小记
查看>>
十六、Mediator 仲载者设计模式
查看>>
jsonToxls jsonTocsv csvTojson xlstocsv 文件转换
查看>>