最近在使用Visifire 进行silverlight开发,官网上下载的是有水印的,而网上找到的破解版是4.5.5,并且有一个重大的问题,就是StackedColumn100会不正常显示(无法堆积)。于是考虑去掉高版本的水印。
水印分两部分,一个是右上角的水印;另外一个是开始运行之后,上边出现的橘黄色的水印
如上图,下面分别去掉两个水印:
首先是去掉右上角的水印:
这个参考网上的方法,创建一个类,重写LoadWm()方法。
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,亲测通过!