Archive for category silverlight

结合Silverlight MEF开发组件式WebGIS平台

公司的WebGIS平台采用Silverlight技术实现,根据Silverlight技术目前的发展情况,要做到团队成员之间组件化配置开发,是有一定复杂度的。既然决定了使用Silverlight技术开发WebGIS平台,那么就只能在Silverlight技术领域寻找解决方案。

第一个映入眼帘的就是MEF,地址为http://mef.codeplex.com/,在下载了示例程序并运行之后,发现其思路极其符合我们要求的:团队中只有一个Silverlight地图框架,其它的功能都是xap包,能够加载并运行于Silverlight地图框架之上,并获得地图句柄,进行地图的相关操作。示例程序中,通过Import和Export机制,解决了不同xap包之间传递不同对象的技术难题,一下子将我们预期完成时间缩短了非常多。一切都在顺利的进行着,直到组件xap需要通过地图控件句柄操作地图控件的时候,问题来了:组件获取不到地图控件句柄。在解决了几天仍然没方法的时候,另一个解决方案出现了:Prism,地址为http://compositewpf.codeplex.com/Read the rest of this entry »

js与silverlight之间的交互

    使用js操作silverlight中的方法并获取返回的结果,这种方式网上比较多的,但通过操作silverlight的时候,调用js方法,这种方式操作的介绍就比较少了,下面我结合自己在实际开发gis业务中,框选了地图中的某个区域,将这个区域的信息反馈到html端,再使用脚本进行操作的例子介绍一下(进行操作是alert,同理,只要html端得到了silverlight的操作句柄和返回结果就可以进行任意的操作了)
大部分思想是参考了:SilverLight学习笔记–Silverligh之在Javascript中捕获和处理Silverlight控件事件 Read the rest of this entry »

Silverlight:从 JavaScript 调用托管代码

主要是针对msdn中的一篇文章进行代码实现的时候遇到的问题处理:
演练:从 JavaScript 调用托管代码 Read the rest of this entry »

译Extreme ASP.NET:Encapsulate Silverlight with ASP.NET Controls

第一次翻译msdn中的文章,也不知道翻译完后能不能读懂,试一试吧。

原文的地址:Extreme ASP.NET:Encapsulate Silverlight with ASP.NET Controls作者:Fritz Onion
中文名称:极限ASP.NET:将Silverlight封装成ASP.NET控件

这是微软网站上翻译的:使用 ASP.NET 控件封装 Silverlight

本文中的代码下载地址: ExtremeASPNET2008_01.exe,在线看代码地址:Browse the Code Online

本文分以下部分:
1、使用Silverlight
2、构建一个自定义Silverlight控件
3、ASP.NET AJAX与IScriptControl
4、The asp:Xaml and asp:Media Controls
Read the rest of this entry »

silverlight应用程序中未处理的错误代码:2104 类别:InitializeError 消息:无法下载 iis上部署Silverlight

开发好的silverlight程序,拿到另外一台机器上部署的时候,发现不能正常浏览,报错信息如下:2104 类别:InitializeError 。检查了一下开发机器的配置和部署的机器配置,发现除了操作系统和IIS不同以外,都是相同的。开发环境为IIS7,部署的环境为IIS6,但为什么不能运行呢?

通过详细的对比后发现,开发环境的IIS中的MIME类型中比部署环境的MIME中多了映射两个类型,问题是IIS6默认不认识xmal和xap这两个类型

解决方法如下:打开HTTP头选项,增加MIME类型,新建两个,分别为:.xaml application/xaml+xml和.xap application/x-silverlight-app

Tags:

Silverlight动画实现一个控件的先纵向后横向的缩放动作

根据业务要求,需要实现一个带有动画效果的显示统计效果图表,动画主要是控制图表控件的长度和宽度。开始的时候,图表控件是空的,没有数据,以70*70像素在左下角,当点击显示图表按钮控件的时候,图表控件基于左下的坐标进行放大,先是长度在1.5秒之内增涨到400px,然后是高度在1秒之内增涨到250px。 Read the rest of this entry »

Tags: , ,

Silverlight中ListBox控件的鼠标滚动事件

Silverlight中ListBox控件的鼠标滚动事件是需要自己实现的,下面是实现代码:

bool IsMouseInControl = false;
private void myListBox_MouseWheel(object sender, MouseWheelEventArgs e)
{
	//如果鼠标不在ListBox上,就不做处理

	if (!IsMouseInControl) return;

	int mouseDelta = Math.Sign(e.Delta);
	var selectedItem = myListBox.SelectedIndex;

	//每次向下滚动一条记录
	var nextRow = selectedItem - (int)mouseDelta *1;

	if (nextRow > -1 && nextRow < icons.Count)
	{
		myListBox.ScrollIntoView(icons[nextRow]);
		myListBox.SelectedIndex = nextRow;
	}
}

Tags: ,

silverlight使用ObservableCollection进行集合数据绑定

在silverlight中,数据绑定有三种方式:

1.OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。

2.OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。

3.TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标。

具体可以看李会军的blog

而使用ObservableCollection进行集合数据绑定时,不需要考虑更新的问题,只要ObservableCollection中的内容变化了,将该对象赋值给控件,控件就会显示更新的内容了。控件能够根据观察者模式,得到集合更改的通知,当数据源发生变化,控件就会发生变化。非常方便。

Tags:

silverlight用鼠标移动控件并将控件移动到ListBox容器中

最近开发的项目要求做出一个类似于手机中移动图标的效果(android操作系统),就是用鼠标点住一个控件,可以移动这个控件到任意位置,也可以将这个控件拖到一个容器中。完成这个效果需要一个被移动的控件、一个容器控件以及控件的相关事件。下面以Image控件和ListBox控件为例,实现的功能是:在画布中用鼠标按下Image控件,并向任意画布中的位置移动Image控件,同时可以将Image控件移动到ListBox中,拖进ListBox容器控件之后,Image控件只在ListBox容器控件中显示。 Read the rest of this entry »

Tags: , , , ,

silverlight修改Image控件的source属性值

最近在做有关silverlight的项目,用到了一些控件,遇到了一些很特殊的情况,修改Image控件的source属性值就是其中之一。下面介绍一下如何修改,直接用后台代码的形式给出,需要注意的就是要用uri的形式,而不能直接赋值:

Image image = new Image();
Uri uri = new Uri(story.IconFileName, UriKind.Relative);
ImageSource imgSource = new System.Windows.Media.Imaging.BitmapImage(uri);
image.SetValue(Image.SourceProperty, imgSource);
this.LayoutRoot.Children.Add(image);
[/c-sharp]

Tags: , ,

pagepeel by webpicasso.de