InteractiveDataDisplay.WPF 固定坐标轴

北慕城南 提交于 2020-01-12 01:32:13

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
        }

最终效果:

这个工具还是蛮好的,我正在研究它其他功能,有时间再来补写

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!