最近在使用Visifire 进行silverlight开发,官网上下载的是有水印的,而网上找到的破解版是4.5.5,并且有一个重大的问题,就是StackedColumn100会不正常显示(无法堆积)。于是考虑去掉高版本的水印。
水印分两部分,一个是右上角的水印;另外一个是开始运行之后,上边出现的橘黄色的水印
如上图,下面分别去掉两个水印:
首先是去掉右上角的水印:
public class MyChart : Chart { protected override void LoadWm() { } public MyChart () { } }
这样,右上的水印就去掉了,但是运行的时候上边的水印依然会出现,下边是解决办法:
public void CreateChart() { Chart chart = new MyChart(); chart.Width = 200; chart.Height = 200; chart.Rendered += new EventHandler(chart_Rendered); LayoutRoot.Children.Add(chart); } void chart_Rendered(object sender,EventArgs e) { var c = sender as Chart; var legend = c.Legends[0]; var root = legend.Parent as Grid; root.Children.RemoveAt(8); root.Children.RemoveAt(7); }
在创建chart的时候,在rendered事件里,通过跟踪,去掉了上边和右上的水印。
本来第二步能直接把两个水印都去掉,但是如果不做第一步,直接第二步,会在创建出chart的一瞬间,右上的水印还会出现,过一会儿才消失,所以才自定义了一个类,保证右上的水印不出现。
感觉我这个解决办法可能是除了破解之外,最容易的实现办法了。虽然网上也有通过stackpanel遮挡的,但总感觉不正宗,并且一旦主题换了,stackpanel的颜色还要跟着改变,十分不方便。
从官网下载的最新版本5.0.4,亲测通过!