InteractiveDataDisplay.WPF(注意:原名叫做Dynamic Data Display)这个鬼东西,好用是好用,就是缺文档啊!
项目里需要将坐标轴固定(不随着鼠标滚轮变化,且横纵坐标的范围固定)。为了这个需求,劳资昨天搜了一个晚上,也没在国内论坛找到解决方案,只好自己试属性,总算被我试出来了!
xmal代码如下:
<Window x:Class="ShowTargets.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:d3="clr-namespace:InteractiveDataDisplay.WPF;assembly=InteractiveDataDisplay.WPF"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ShowTargets"
mc:Ignorable="d"
Title="测试" Height="450" Width="800" Loaded="Window_Loaded">
<Grid Margin="20,30,20,20">
<d3:Chart Name="plotter" IsHorizontalNavigationEnabled="False" IsVerticalNavigationEnabled="False" PlotHeight="100" PlotWidth="100" >
<d3:CircleMarkerGraph Name="circles"/>
</d3:Chart>
</Grid>
</Window>
关键就是这四个属性:
IsHorizontalNavigationEnabled="False" 横向导航开关,置为false之后,横向就不能乱动喽
IsVerticalNavigationEnabled="False" 同理纵向导航开关,置为false之后,纵向就不能乱动喽
PlotHeight="100" 设为100后,纵坐标就是0-100了
PlotWidth="100" 设为100后,横坐标就是0-100了
后台代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
#region 画点
int N = 100;
Random r = new Random();
List<Double> pointXs = new List<Double>(N);
List<Double> pointYs = new List<Double>(N);
for (int i = 0; i < N; i++)
{
pointXs.Add(r.NextDouble() * 100 - 1);
pointYs.Add(r.NextDouble() * 100 - 1);
}
circles.PlotXY(pointXs, pointYs);
#endregion
}
最终效果:
这个工具还是蛮好的,我正在研究它其他功能,有时间再来补写
来源:CSDN
作者:wonder-_-
链接:https://blog.csdn.net/awangdea99/article/details/103876007