none
绘图到内存然后用位图显示,如何传递事件? RRS feed

  • 问题

  • 由于直接用Chart绘制大量数据时会导致界面卡顿,现在希望后台绘制然后存为位图,再在界面上以位图的形式显示。

    显示之后如何传递平移、缩放、数据浏览等功能?事件如何传递?坐标值如何计算?

    2017年9月18日 0:58

答案

  • 已解决。

    直接使用Direct2D或者OpenGL。事件传递时通过屏幕坐标位置+图片的位置信息转换为坐标中的数值。


    2017年9月26日 1:21

全部回复


  • Hi ShannonZhou,

    >>显示之后如何传递平移、缩放、数据浏览等功能?事件如何传递?坐标值如何计算?

    按照你的这种方式,你还是需要在后台绘制不同的图片,然后显示。或者可能对图片做些操作来显示部分效果。

    所以我建议你可以尝试使用一些开源的三方库来实现你的绘图效果。 或者采取一些高性能的商业软件。

    下面是一个免费开源的Live-Charts(适用WPF,UWP,Winform等):

    官网:
    https://lvcharts.net/


    Live-Charts 源码:
    https://github.com/beto-rodriguez/Live-Charts

    注意:此回复包含对第三方万维网站点的引用。 微软正在为您提供这方面的信息。 Microsoft不控制这些网站,并没有测试这些网站上发现的任何软件或信息; 因此,Microsoft不能对在那里发现的任何软件或信息的质量,安全性或适用性做任何陈述。 使用互联网上发现的任何软件都存在固有的危险,微软警告您确保在从因特网检索任何软件之前,您完全了解风险。


    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2017年9月18日 8:06
    版主
  • LC的特色是动画,数据点稍微一多就非常卡,满足不了我的需求。
    2017年9月18日 12:53

  • Hi ShannonZhou,

    >>LC的特色是动画,数据点稍微一多就非常卡,满足不了我的需求。

    那就需要看你使用的哪种技术平台来开发你的图表了。

    下面几篇文章是关于WPF的解决方案或许对你有所帮助。

    WPF 自定义的图表(适用大量数据绘制)下
    http://www.cnblogs.com/xpvincent/archive/2013/01/17/2864902.html

    WPF: 使用DrawVisual提高大数据量时的绘图性能
    http://www.cnblogs.com/xpvincent/archive/2013/01/17/2864902.html

    如果都不满足你的需求,也许你需要根据你的项目需求,自己设计合适自己的方式来实现你的功能。


    注意:此回复包含对第三方万维网站点的引用。 微软正在为您提供这方面的信息。 Microsoft不控制这些网站,并没有测试这些网站上发现的任何软件或信息; 因此,Microsoft不能对在那里发现的任何软件或信息的质量,安全性或适用性做任何陈述。 使用互联网上发现的任何软件都存在固有的危险,微软警告您确保在从因特网检索任何软件之前,您完全了解风险。

    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年9月19日 8:27
    版主
  • 我的方案就是你发的链接里面的第一条。

    我的问题是,如何传递事件~~~~

    2017年9月20日 0:45

  • Hi ShannonZhou,

    从你进一步描述,你是开发的WPF 项目。 请在WPF论坛提交你的问题。

    注意: 请将你的问题描述清楚,并附带你的代码和一些测试结果,如有错误,请贴出详细的错误信息。这样才能有效的获取帮助。别人也能针对性的给予帮助。


    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年9月20日 1:47
    版主
  • 我的问题跟是不是使用WPF没有任何关系……

    完全可以用Winform,甚至可以用MFC~

    2017年9月22日 1:08

  • Hi ShannonZhou,

    那你的问题是 : C#的位图如何传递平移、缩放、数据浏览等功能?事件如何传递?坐标值如何计算?

    也许你需要提供一些代码,给大家一些针对性的分析。


    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年9月22日 9:37
    版主
  • 已解决。

    直接使用Direct2D或者OpenGL。事件传递时通过屏幕坐标位置+图片的位置信息转换为坐标中的数值。


    2017年9月26日 1:21