• visifire笔记


    visifire是silverlight下很不错的一套开源组件,最近其发布了2.0beta版本,本文将主要记录一些这个版本跟以前版本不同的地方.

    昨天初步把1.55版本移植到了2.0beta,没有遇到太大的麻烦,不过确实还是进行一些细节的修改,这些更改看上去更合理了,很多东西都不用往children下硬塞,直接类似Serise.Add或者Titles.Add就可以了.

    由于visifire更新速度还是挺快的,所以请留意下,写这篇文章的时候visifire的版本是2.0 beta,未来的版本可能会有变化,具体细节请阅读当前时间的visifire对应版本的文档.

    首先,图表最大的一个作用之一就是帮助我们观察数据,当图表中的数字很大并且它们之间的值相差的很小的时候,通常就会很难观察,很难从图表中发现信息,比如下面这样的图:


    visifire为我们提供了一个属性,StartFromZero,通过设置这个属性为false,就可以帮助我们观察到数据的差异,效果如下图:


    砍去了公共的部分,观察数据就容易多了.这里跟excel里的表格表达有些不同,在excel里是把中间不必要的部分加上...省去公共的部分.

    图表的创建跟之前的版本变化还是不大的,我在迁移的过程没有遇到太大的问题.关于创建图表的示例代码大家可以展开下面的代码块(笔者以后也会经常回来参考这段代码:)):

    Code


    从这个代码中可以看出像DataSeries和Datapoint以及Title对象都有了明确的归属,不需要Children.Add的方式了.个人认为这样是非常合理的.

    对于数据的实时更新部分,可以参考如下的代码:

    Code

    看上去简单多了,直接更改Series里面的Datapoint实例就可以,但是实时更新的时候不知道为什么visifire没有提供动画,而是很生硬的就显示过了了,这样显示类似监视机器cpu和内存消耗的功能还可以,比如visifire官方网站上的这段演示:

    不过,可能是考虑到数据的update有insert,delete和edit几种情况,所以目前的这个版本没有考虑进来这个功能(当然或许有我不知道,还麻烦熟悉的朋友指点一下).

    另外对于图表类型的定义现在有一个明确的枚举类型了,其是很早就应该这么做了.

    Code

    这个枚举类型可以取很多, 有如下类型:

    Member name
    Area
    Bar
    Bubble
    Column
    Doughnut
    Line
    Pie
    Point
    StackedArea
    StackedArea100
    StackedBar
    StackedBar100
    StackedColumn

    StackedColumn100

    具体的效果请大家参考Visifire Gallery,这里简单截取一个图下来:


    虽然网上关注visifire的还不是很多,社区资源比较少,不过visifire的文档还是很全面的,还有很多示例可以让我们参考.我在一些BI应用中也一直在使用这个组件,效果很不错,推荐更多的朋友使用.

    一些细节:visifire的footprint从140多KB增加到了199KB,相对来说还是可以承受的,另外visifire的网站标题也更换成了Silverlight & WPF Chart,看得出来在2.0版本上所做的努力.目前还是beta,相信正式版本很快就会和大家见面,其是visifire的更新速度还是很不错的,半个月通常就会有一个版本的更新.

    今天注意到visifire的代码已经host在googlecode下了,SVN的checkout地址是:

    http://visifire.googlecode.com/svn/branches/Visifire2.x

    关于visifire 2.0 beta以及visifire更多的信息请参考我昨天发布的一个随笔下面的引用:

    http://www.cnblogs.com/aspnetx/archive/2008/11/22/1338993.html


  • 相关阅读:
    Codeforces 1111D(退背包、排列组合)
    Codeforces 1152D(dp)
    UVaLive6443(线段树)
    UVaLive6435(dp)
    POJ1741(点分治)
    Codeforces 161D(树形dp)
    BZOJ2595(状压dp)
    关于spring java.lang.IllegalArgumentException: Name for argument type [java.lang.String] 的错误
    FingerPrint Fuzzy Vault Matlab实践
    Mybatis的ResultMap的使用
  • 原文地址:https://www.cnblogs.com/aspnetx/p/1339368.html
Copyright © 2020-2023  润新知