使用WPF画横纵坐标图,坐标原点在左下角

简介: 在使用WPF画横纵坐标图,可以使用本身的Canvas下实现。默认坐标原点在左上角。能过下面的实现可以实现在左正解,并连续曲线图,不过比不上DynamicDataDisplay的效果美观。
在使用WPF画横纵坐标图,可以使用本身的Canvas下实现。默认坐标原点在左上角。能过下面的实现可以实现在左正解,并连续曲线图,不过比不上DynamicDataDisplay的效果美观。
首先在Xaml中定义Canvas。如下:

点击(此处)折叠或打开

  1. Border BorderBrush="Black" BorderThickness="1" Height="200" Width="200">
  2.             Canvas Height="200" Width="200" x:Name="Canvas1">
  3.                 Canvas.RenderTransform>
  4.                     TransformGroup>
  5.                         ScaleTransform ScaleY="-1" />
  6.                         TranslateTransform Y="200" />
  7.                     /TransformGroup>
  8.                 /Canvas.RenderTransform> /Canvas>
  9.         /Border>
设置Canvas是正方形,200长。
在窗体的Page_Load事件中添加画线:

点击(此处)折叠或打开

  1. private void Window_Loaded(object sender, RoutedEventArgs e)
  2.         {
  3.             int[] slices = new int[67];
  4.             for (int i = 0; i 67; i++)
  5.             {
  6.                 slices[i] = i*3;
  7.             }
  8.             double[] sens = new double[67];
  9.             sens[0] = 0;
  10.             sens[66] = 0;
  11.             for (int i = 1; i 66; i++)
  12.             {
  13.                 if (i % 2 == 0)
  14.                 {
  15.                     sens[i] = 119.8 + 20;
  16.                 }
  17.                 else
  18.                 {
  19.                     sens[i] = 119.8 - 20;
  20.                 }
  21.             }
  22.             for (int i = 0; i 66; i++)
  23.             {
  24.                 Line line = new Line();
  25.                 line.X1 = slices[i];
  26.                 line.Y1 = sens[i];
  27.                 line.X2 = slices[i + 1]+1;
  28.                 line.Y2 = sens[i + 1];
  29.                 line.Stroke = System.Windows.Media.Brushes.Black;
  30.                 line.StrokeThickness = 1;
  31.                 this.Canvas1.Children.Add(line);
  32.             }
  33.         }
其中:line.Stroke = System.Windows.Media.Brushes.Black;很重要,如果没有这行,画出的线条都是白色的。
line.StrokeThickness = 1;设置线条的粗细。
效果图如下:

 


目录
相关文章
|
C# 前端开发
WPF如何得到一个在用户控件内部的元素的坐标位置
原文:WPF如何得到一个在用户控件内部的元素的坐标位置 例如有这样一个用户控件: 这是主窗口: ...
1370 0
|
C# Windows
WPF 定时器DispatcherTimer+GetCursorPos 的使用,动态查看屏幕上任一点坐标
原文:WPF 定时器DispatcherTimer+GetCursorPos 的使用,动态查看屏幕上任一点坐标 using System;using System.Collections.Generic;using System.
1021 0
|
C#
WPF中得到一个控件相对其他控件的坐标
原文:WPF中得到一个控件相对其他控件的坐标 加入想得到按钮btnTest左上角相对于主窗体winTest的坐标,可以用如下方法:btnTest.TranslatePoint(new Point(0, 0), winTest) 这个方法返回一个Point类型的值。
939 0
|
C# C++ 计算机视觉
WPF特效-绘制实时2D激光雷达图
原文:WPF特效-绘制实时2D激光雷达图 接前两篇: https://blog.csdn.net/u013224722/article/details/80738619 https://blog.csdn.net/u013224722/article/details/80738995 除了c# GDI 、Opencv(c++)、 c# Emgu绘图外,其实c#  WPF绘图功能也很强大。
1816 0
|
C# Windows
WPF显示GIF图的几种方式
原文:WPF显示GIF图的几种方式 使用MediaElement   这种方式有一个局限就是图片路径必须是绝对路径   并且你还需要设置让他循环播放 private void MediaElement_MediaEnded(object sender, R...
3103 0
|
C# Windows
WPF获取相对位置、坐标的方法
原文:WPF获取相对位置、坐标的方法 1.获取鼠标在控件中的坐标: 1 private void item_MouseDown(object sender, MouseButtonEventArgs e) 2 { 3 Point point = e.
2059 0
|
定位技术 C#
WPF仿百度Echarts人口迁移图
原文:WPF仿百度Echarts人口迁移图 GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子吧 http://echarts.
1261 0
|
C# Python Java
WPF DevExpress 设置雷达图Radar样式
DevExpress中定义的ChartControl很不错,很多项目直接使用这种控件。 本节讲述雷达图的样式设置 ...
1507 0
|
前端开发 C# Python
WPF 自定义雷达图
自定义雷达图表如下:      Git下载地址:https://github.com/Kybs0/RadarChartControl 1、创建UserControl,名为“RadarChartControl” 前台:   View Code   后台: /// /// RadarChartControl.
865 0