silverlight visifire控件图表制作——silverlight 后台方法页面事件
1、返回事件 (1、返回silverlight页面,2、返回web页面)
private void button_ClickBack(object sender, RoutedEventArgs e)
{
1、返回silverlight页面:
this.Content = new BeginControlChart(sTNameClick, strReportDate, false);//增加个参数表名
2、返回web页面
HtmlWindow html = HtmlPage.Window;
string strUri = Application.Current.Host.Source.AbsoluteUri.Substring(0, Application.Current.Host.Source.AbsoluteUri.IndexOf("/ClientBin")) + "/Business/DataQuery/StoreQuery.aspx?IsStoreBack=true";
html.Navigate(new Uri(strUri));
//HtmlWindow html = HtmlPage.Window;
//html.Navigate(new Uri("../Business/DataQuery/StoreQuery.aspx?IsStoreBack=true", UriKind.Relative));
//Urikind.Relative表示相对路径
}
2、下载事件
private void btnDown_Click(object sender, RoutedEventArgs e)
{
SaveToImage(this.gridVisifire, sTNameClick);
}
private void SaveToImage(Grid oGrid, string sTName)
{
try
{
string sChartName = "a"; //下载图片名称
WriteableBitmap bitmap = new WriteableBitmap(oGrid, null);
if (bitmap != null)
{
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.Filter = "JPEG Files (*.jpeg)|*.jpeg";
saveDlg.DefaultExt = ".jpeg";
saveDlg.DefaultFileName = sChartName;//oGrid.Name;
if ((bool)saveDlg.ShowDialog())
{
using (Stream fs = saveDlg.OpenFile())
{
MemoryStream stream = GetImageStream(bitmap);
byte[] binaryData = new Byte[stream.Length];
long bytesRead = stream.Read(binaryData, 0, (int)stream.Length);
fs.Write(binaryData, 0, binaryData.Length);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static MemoryStream GetImageStream(WriteableBitmap bitmap)
{
byte[][,] raster = ReadRasterInformation(bitmap);
return EncodeRasterInformationToStream(raster, ColorSpace.RGB);
}
public static byte[][,] ReadRasterInformation(WriteableBitmap bitmap)
{
int width = bitmap.PixelWidth;
int height = bitmap.PixelHeight;
int bands = 3;
byte[][,] raster = new byte[bands][,];
for (int i = 0; i < bands; i++)
{
raster[i] = new byte[width, height];
}
for (int row = 0; row < height; row++)
{
for (int column = 0; column < width; column++)
{
int pixel = bitmap.Pixels[width * row + column];
raster[0][column, row] = (byte)(pixel >> 16);
raster[1][column, row] = (byte)(pixel >> 8);
raster[2][column, row] = (byte)pixel;
}
}
return raster;
}
public static MemoryStream EncodeRasterInformationToStream(byte[][,] raster, ColorSpace colorSpace)
{
ColorModel model = new ColorModel { colorspace = ColorSpace.RGB };
FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);
//Encode the Image as a JPEG
MemoryStream stream = new MemoryStream();
FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, 100, stream);
encoder.Encode();
// Back to the start
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
3、打印事件(详细参考:silverlight visifire控件图表制作——silverlight 后台方法打印)
private void btnPrint_Click(object sender, RoutedEventArgs e)
{
//启动打印图片,出现打印对话框
printImage.Print(sTNameClick);
}
4、更改时间地名 事件 自动查询刷新页面
注意:定义全局变量 public bool flag = false;
在构造方法中给页面控件赋默认选中值时会触发dateStart_SelectedDateChanged等方法,所以定义全局变量flag ,页面所有控件赋值完成后,赋值:flag =true 之后再进行查询
//更改时间
private void dateStart_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
if (flag == true)
{
Query();
}
else
{
return;
}
}
5、图表显示数据点事件
定义全局变量 public bool isShowData = false;
//图表是否显示数据
private void showData_Click(object sender, RoutedEventArgs e)
{
if (showData.IsChecked == true) //勾选
{
isShowData = true;
}
else
{ isShowData = false; }
Query();
}
6、查询按钮:(调用wcf)
private void button_ClickQuery(object sender, RoutedEventArgs e)
{
DBServiceClient svc = new DBServiceClient();
svc.GetSingleChartDataCompleted += new EventHandler<GetSingleChartDataCompletedEventArgs>(svc_GetSingleChartDataCompleted);
string strReportDate = "";
if (this.dateStart.Visibility == Visibility.Collapsed)//时间控件为不可见时 即时间只显示年份
{
strReportDate = this.dateYear.SelectedValue.ToString().Substring(0, 4) + "0101";//当前选定时间年份的年初
}
else
{
strReportDate = this.dateStart.SelectedDate.Value.ToString("yyyyMMdd");//当前选定值
}
sXName = this.addressNameList.SelectionBoxItem.ToString();//当前选定油田
strMonth = strReportDate;
svc.GetSingleChartDataAsync(strReportDate, sTNameClick, sXName);
}
silverlight visifire控件图表制作——silverlight 后台方法页面事件的更多相关文章
- silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs
一.构造方法ControlChart 1.前台页面控件赋值 //时间下拉框赋值,下拉框赋选定值 for (int ii = DateTime.Today.Year; ii ...
- silverlight visifire控件图表制作——silverlight 后台方法打印
一.后台方法 1.添加引用:using System.Windows.Printing; 2.全局变量://定义图片和文本打印变量 PrintDocument printImage; 3.构造方法体 ...
- silverlight visifire控件图表制作——silverlight 静态页面xaml
一.silverlight 静态页面 1. 时间控件:DatePicker ,添加引用: xmlns:sdk="clr-namespace:System.Windows.Controls;a ...
- silverlight visifire控件图表制作——silverlight 后台方法画图
1.调用wcf 获取信息 private void svc_GetSingleChartDataCompleted(object sender, GetSingleChartDataCompleted ...
- Silverlight Visifire控件 .net后台控制aspx页面控件的显示与隐藏,动态给控件赋值,选定默认值的设定
.net后台代码: 控件的显示与隐藏: this.dateStart.Visibility = Visibility.Collapsed;//不显示控件 this.dateYear.Visibilit ...
- Silverlight Visifire控件应用去水印
版本几之前可以用属性直接去掉水印: chart.Watermark = false; 现在我用的会报错,已过时,在网上查了写资料,解决办法如下: 一.很多人都是利用摭罩的办法,定位到水印显示的地方,建 ...
- 在Visualforce page中用自带的控件实现Ajax回调后台方法(并且可以用js去动态给parameters赋值)
这里用的组合是:apex:commandLink + apex:actionFunction + apex:outputPanel 这里的 apex:commandLink 和 apex:actio ...
- silverlight .net后台 设置visifire控件图表样式 属性说明
.net后台 代码: 如图 Chart chart = new MyCharts(); //图表 //chart.Watermark = false; //没好使 ...
- Silverlight Visifire控件 后台设置颜色
ColorSet cs = new ColorSet(); cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1 1.cs.Bru ...
随机推荐
- 创建自托管的SignalR服务端
微软官方例子地址:http://www.asp.net/signalr/overview/deployment/tutorial-signalr-self-host 1.说明: SignalR服务端可 ...
- POJ3104 Drying(二分查找)
POJ3104 Drying 这个题由于题目数据比较大(1 ≤ ai ≤ 109),采用贪心的话肯定会超时,自然就会想到用二分. 设C(x)为true时表示所用时间为X时,可以把所有的衣服都烘干或者自 ...
- 用root帐号切换其他帐号提示 su: warning: cannot change directory to /home/oracle: Permission denied
用root帐号切换其他帐号提示: 出错原因: 基本上是根目录或者是/home/oracle目录权限的问题 解决办法: 更改根目录权限为755,并保证对应用户主目录的所属用户和所属组一致和用户名一致. ...
- android 中View, Window, Activity, WindowManager,ViewRoot几者之间的关系
(1)View:最基本的UI组件,表示屏幕上的一个矩形区域. (2)Window: 表示一个窗口,不一定有屏幕那么大,可以很大也可以很小: 它包含一个V ...
- 在NGINX上配置HTTPS---血的教训--要重启NGINX
重启,不是重载!!! 是STOP & START 而不是RELOAD!!! 纠结了好几天...(难道有的NGINX上不用重启????) 你妹的,上次也是,,PHP-FPM,将一个PHP的程序连 ...
- BZOJ 2732 射箭
http://www.lydsy.com/JudgeOnline/problem.php?id=2732 题意:给你n个靶子,让你求是否有一个经过原点的抛物线经过最多的前k个靶子,求出最大的k 思路: ...
- 直接修改别人jar包里面的class文件 工具:jclasslib
出于某些原因 需要把别人jar包里面的class修改一下信息 配置文件*.properties MANIFEST.MF 这些东西可以直接用记事本打开修改 然后替换掉就OK.. 在网上游荡了半天,没有找 ...
- VC6.0 编译 gdlib 库
环境 WinXP, MSVC6.0 1 从 https://bitbucket.org/libgd/gd-libgd/downloads 下载最新版本 libgd 2 可以用 nmake 编译 w ...
- win10 iis 创建新站点注意事项
新建站点时:注意文件夹权限增加everyone. 快速打开IIS:win+r:inetmgr
- 传阿里整合资源,进军O2O市场
阿里巴巴对于本地生活市场,以及O2O领域始终虎视眈眈.从最早的融合口碑网,到最近阶段推出淘宝点点.收购高德地图等一系列app产品,其整合线上线下消费市场的野心已十分明显. 今年年初,阿里巴巴集团重新进 ...