从不是创建控件“vc combobox控件” 的线程访问它

posts - 91,&
comments - 140,&
trackbacks - 1
随笔分类 - .NET 技术
摘要: 这两天做一个小工具,需要让用户提供数据库连接字符串,锉方法是让用户输入一个字符串,稍好点方式的是提供一个字符串让用户去改,更好呢,就是提供一个像VS中那样一个可以生成数据库连接字符串的对话框了。从很久以前开始,M$就提供了这样的组件,我至少在VS的安装目录下发现了两个Assembly中包含了DataConnectionDialog,分别是:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Microsoft.Data.ConnectionUI.Dialog.dll和C:\Program Files\Microsoft Visua
think8848 阅读(523) |
摘要: 转载请注明作者(think8848)和出处()使用SqlCommand的感觉有时侯很爽,就跟那啥一样,对于数据的控制酣畅淋漓,但在这程中总是很担心一不小心打个颤,出现严重后果。之前在选择ORM时,选择了SubSonic,不觉已用了n年了,总的感觉来说还是非常不错的,但是SubSonic一直有一个硬伤:不能对同一个表进行JOIN连接。这个需求虽说不是天天有,但一个月总有那么几天需要去面对,搞的那几天人心情都不爽,当初选SubSonic是我力主的,解决不了问题,我难免得挨几下白眼。今天点低,又遇到了,需求很简单:一个Users中有ID,Nam
think8848 阅读(616) |
摘要: 昨天一个朋友突然问我如何在C#下给DataGridView绘制背景图,以前使用一些第三方控件时,看见它们有这个功能,只是我还没有过这种需求,于是便动手试了下。最先想到的是BackgroundImage,这两天正在做B/S的界面,还觉得要说做界面方便,还得说CSS,从这点上来说,WPF或者Silverlight还真不赖,只可惜的是现在C/S的用武之地越来越小,除了游戏必须(当然,是大型的游戏)为桌面应用程序外,貌似使用C/S做个管理系统实无必要;在企业管理系统中,WPF和Silverlight莫非就是传中的屠龙技?又说远了去了,但是很快发现BackgroundImage不行,且看其定义: [Br
think8848 阅读(3939) |
摘要: 本以为创建PDF的组件一抓一大把,要用的时候才发现网上的资源很少,大家讨论比较多的是iTextSharp。于是就下载下来试试看。先发几个有用的资源:这里是一个很好的中文博客,里面有非常详细的iTextSharp资料。这里是IBM知识库的一篇很有用的文章,不过是java实现的,当然,使用C#的兄弟看java的代码应该不大会有陌生的感觉。有这篇文章你就可以制作出精美报表了。我使用的比较简单,只是使用iTextSharp制作一个报表,现在的项目是一个C/S项目,但是要修改扩展到B/S架构的(客户就是这么要求的),因此我不想把PDF文件直接生成在硬盘上,而是生成一个Stream,当然了,肯定是Memo
think8848 阅读(445) |
摘要: 参考地址:/questions/142003/cross-thread-operation-not-valid-control-accessed-from-a-thread-other-than-the-t解决方法:使用代理 decimal lightHorizontalAngle = 0; if (this.cbLightHorizontalAngle.InvokeRequired) { this.cbLightHorizontalAngle.Invoke(new MethodInvoker(delegate { lightHorizontal
think8848 阅读(114) |
摘要: 转载请注明作者及出处,谢谢上文提到了等值线追踪解决方案,在此基础上,我们就可以把等值线画出来了,但是只光秃秃的线条,没有标注还是不行的,别人哪知道那条像蚯蚓一样的线条代表什么呢,本文我们就来讨论下如何在等值线上进行标注。感谢《等值线标注的一种算法探讨》一文的作者,我正在是使用这篇论文中的重要算法指导了我的工作。首先标注那些小的封闭式的等值线。这里我也没有想出来好的方法,就使用方法,找出封闭式等值线中点坐标X最小值,Y最小值,X最大值及最大值;如果XMax - XMin & 指定值以及YMax - YMin & 指定值,则在P((XMin + XMax) / 2,(YMin + YM
think8848 阅读(2097) |
摘要: 转载请注明作者及出处,谢谢上文提到了绘制等值线的一些基本原理及构建三角网的思路,本文将着重介绍等值线追踪方法。在我一开始的想法中,绘制等值线肯定就是把所有具有相同值的点连接起来就OK了,一想那不是一个蜘蛛网嘛,不同高程值的等值线都交叉了,那还叫什么等值线?了解到使用三角网剖分方法来生成等值线后,又是以为三角形延着三个点来游走就能得到等值线,又一想不行,因为如果值恰好在某一个点上时,那到底向哪条边游走呢?最重要的是,如果我要绘制照度为500的等值线,如果三角网中所有的点上的值没有500怎么办?那岂不是很滑稽:有600,有400,但是没有500这条线,这就好比有爷爷,也有孙子,但是没有儿子,那孙子
think8848 阅读(2549) |
摘要: 转载请注明作者及出处,谢谢这两天手头有个项目,需要绘制等值线,本以为是一个很简单的事情,没有想到刚开始就发现竟然无从着手,研究了一个星期,终于把线条画出来了,基本思路是先三角网剖分,然后再等值线追踪,最后绘制;没有对等值线进行光滑处理,示例图中看起来比较光滑是因为取点比较密集,也没有打算进行等值线填色,因为项目中没有这个需求,(而且在我的项目中高程点是网格状分布,而不是离散点,因此我做的三角网剖分简单,但是等值线追踪算法是完全满足离散点要求的)。先上几个效果图:示例图(黄颜色圆圈代表光源,高程值为光源照度)图1图2图3等值线标注示意图效果一:高程值压线了效果二:高程值在线条下方效果三:高程值
think8848 阅读(3139) |
摘要: 话说当年张古董将老婆借给了李成龙,结果最后竟然一借不回了。这件事呢两个方面都要怪:张古董动机不纯,李成龙作人也不厚道,但一般情况下占人便宜是很上瘾的。Reflector没有人不知道吧,.NET用了好多年的人可能已经不需要再去看.NET源代码了,一来是之前看过了,二来是很多的实现方式和运行原理能猜个七七八八的,但是对于初学者以及想查看有些不常用的.NET类型源代码的人来说,没有Reflector真是挺难受的。但是前两天突然听到个消息,Reflector居然收费了!!!这么好用的一个工具,居然不给免费使用了???这就好像张古董把老婆借给李成龙一样,让李成龙夜夜笙歌,好不逍遥快乐,有一天突然张古董要
think8848 阅读(867) |
摘要: SyndicationFeedResult 源代码原文地址:/p/netfx/source/browse/trunk/Source/Web/Mvc/SyndicationFeedResult.cs?r=73/* * Dependencies: * System.Web.Abstractions * System.Web.Mvc * System.Web.Routing * System.ServiceModel.Web * Authors: Juan Wajnerman - .ar */using System
think8848 阅读(910) |
摘要: 转载注明作者及出处,谢谢听到DotNetOpenAuth是去年某一天的事了,当时在读《RESTful Web Service》时突然好像灵光一闪,觉得Authorization这个问题似乎应该在构建服务之前就先考虑清楚,否则服务化似乎就无从谈起了。为什么这么说呢,举例来说,Google Canlendar是一个服务,你现在使用Google Canlendar又构建了另一个服务,并幸运的拥有了一些用户,但这些用户怎么才能放心的把Google的帐户信息交给你,让你拿去Google验证呢;另一点,我们公司现在项目比较多,每个新项目建立后,都要往里复制一份诸如Organization,UserMana
think8848 阅读(11114) |
摘要: 转载请注明作者及出处,谢谢最近学习ASP.NET MVC 3,今天想试试jqGrid的TreeGrid模式,本以为跟着Demo一小会就能出效果,不料一直到晚上才搞定。于是把解决方案发出来以便刚接触jqGrid的兄弟参考。需求:显示树状结构的数据,如:部门列表。@section head{ &script type=&text/javascript&& $(function () { $('#treegrid').jqGrid({ treeGrid: true, treeGridModel: '...
think8848 阅读(5029) |
摘要: use-New-cachedefaultVelocity 创建命令缓存PS C:\Program Files\Microsoft Distributed Cache\V1.0& use-New-cachedefault
think8848 阅读(103) |
摘要: 读大段的源代码是件苦差事,往往读着读着就不厌其烦了,很难把代码一行一行的搞明白,Google Data API这段代码我也读了好几遍了,但是一直是一知半解,没有搞清楚过细节,今天打算边读边把细节写下来,一方面可以强迫自已把细节搞明白,另一方面也可以为准备读这段源代码的朋友们一个提供一个参考,因本人水平有限,对代码的理解肯定存在偏差,以及对GoogleAPI技术的理解和猜想有误差,希望大家能不吝指正...
think8848 阅读(1026) |
摘要: 昨天突然想到一个问题,在RESTful Web Service中,如何修改一个对象呢,怎么看都不像是通过把一个复杂对象分解为Uri的参数的形式来上传到服务器上的。又看了微软提供的WCF的示例代码《高级 Web 编程》,其中倒有一段代码貌似和我的需求一致: [代码]这里从客户端传上来一个Customer类型的对象newCustomer,而不是完全把Customer分解成简单类型传上来。但是还是感觉这...
think8848 阅读(1527) |
摘要: 原文地址:/zh-cn/magazine/cc135976.aspx作者:Justin Smith 是 Microsoft 一名专门从事 Web 服务的技术专家。他致力于研究 WCF 和 BizTalk 服务。Justin 也是“Inside Windows Communication Foundation”(Windows...
think8848 阅读(403) |
摘要: 好几次了,执行的好好的Silverlight项目调用Web Service时报"System.Security.SecurityException: 安全性错误",如下图所示:因为这几天只是学习、测试Silverlight的功能,并没有作什么正式的项目,所以每次看到这个就直接重新建一个工程,今天真的不耐烦了,上网找了下原因,大概是Silverlight跨域访问的权限问题,需要在Silverligh...
think8848 阅读(1482) |
摘要: 这两天在看关于RESTful Web Service,特别羡慕在MyEclipse下的Jersey开发环境,其提供了显示HTML请求和响应的信息,如图所示:还不仅如此,在MyEclipse中还可以在POST时提交数据,但是在Visual Studio中就没有这种工具了。今天发现了一个Blog:WCF Tools中国研发团队的博客,提到了一个工具WebDevHelper(下载地址)有这种功能,我才想...
think8848 阅读(242) |
摘要: 严格的来说,这篇文章是Google API学习1:Silverlight显示Google Calendar中的内容,但是又觉得今天的认识比昨天稍深入了一步,再加到昨天的文章似乎有点不能突出重点,因此有必要新增一篇。昨天使用了Google API的.NET Client Library对Google Calendar进行了访问,但是一直觉得有些地方不太满意,最主要的原因可能是没有弄明白Google ...
think8848 阅读(269) |
摘要: 转载请注明出处,谢谢废话:不太想说关于云计算的事情,主要原因是这个问题太庞大,话说起来太长,更主要的原因是我觉得云计算这个概念对我来说就好像是个抢版的预告片,现在还无法说个究竟。这两天突然发现Google真的伟大的Very!本文将介绍使用Silverlight 3.0+ WCF访问 Google Calendar。这两天仅学习了Google Calendar API,因此本文将只涉及到这一个API...
think8848 阅读(521) |
摘要: 为了使TextBlock能自动换行,并且在指定了高度的情况下必要时候出现纵向滚动条,我把TextBlock包在了ScrollViewer中,为了使用ScrollViewer只显示纵向滚动条,我把ScrollViewer的HorizontalScrollBarVisibility属性设置为"Hidden”,但是设置TextBlock.TextWrapping属性为"Wrap"后发现还是没...
think8848 阅读(1883) |
摘要: 获取RootVisual中的RootLayout[代码]
think8848 阅读(491) |
摘要: 转载请注明出处现有需求:1.DataGrid的列是运行时定义的。2.DataGrid的一个列需要显示图片,并且与该列绑定的数据是枚举(int)类型。下列代码是DataGrid行显示的对象[代码]其中MessageInfoIcon定义如下:[代码]在定义DataGrid的列时发现一个比较麻烦的问题,DataGrid的列只有三种类型:DataGridTextColumn、DataGridCheckBo...
think8848 阅读(3102) |
摘要: 运行环境: Silverlight 3.0(未在2.0下面做过测试,貌似本方法不支持2.0,因为2.0下面,ResourceDictionary没有Source属性)[代码]只要将ResourceDictionary.Source属性设置为合适的Uri,则可以通过Key来获取需要的对象。 补充:刚才又发现一个利用ResourceDictionary的场景在创建自定义控件时,我们有可能需要在Gene...
think8848 阅读(1502) |
摘要: 继承ContentControl可以很方便实现包含内容(Content)的控件,方案一:自定义控件代码如下:[代码]themes/Generic.xaml代码如下:[代码]引用页面代码:[代码]方案二:自定义控件:[代码]themes/Generic.xaml代码如下:[代码]引用页面代码:[代码]补充:Silverlight自带的内容控件中一般使在ContentPresenter时绑定了以下两个...
think8848 阅读(652) |
摘要: c#[代码]SQL:[代码]
think8848 阅读(527) |
摘要: 在XAML中定义了一个控件,如下:&Grid x:Name="FormContainerElement" ... /&自定义控件代码*.cs如下:[TemplatePart(Name = "FormContainerElement", Type = typeof(Grid))]public class MyControl : Control{public MyControl(){Def...
think8848 阅读(1212) |
摘要: 对于new()约束,大家可能有一个误解,以为使用了new约束之后,在创建对象时与非泛型的版本是一致的:public class Tester&T&where T:new(){public Tester(){t = new T();//等同于非泛型版本的new? 例如 object o = new object();?}private T} 事实上,使用new关键字的作用只是让编译...
think8848 阅读(366) |
摘要: 今天想看看Silverlight中ComboBox控件的实现原理,用Reflector将System.Windows.dll中的资源保存了下来,在看ComboBox的Template时发现一个问题,如下图所示:画红线的那句看起来比较奇怪,VisualStateManager好像只是和显示状态有关,在MSDN中没有看到与Setter标签配合使用的情况呀,查阅了Silverlight 《Beta 2 ...
think8848 阅读(347) |
think8848 阅读(3153) |
think8848 阅读(5077) |
think8848 阅读(536) |
think8848 阅读(148) |
think8848 阅读(139) |
think8848 阅读(351) |
think8848 阅读(293) |
think8848 阅读(416) |
think8848 阅读(233) |
think8848 阅读(565) |
think8848 阅读(934) |Delphi教程:
Delphi控件:随笔分类 - 07.WPF/Silverlight
Silverlight调用本机exe程序
菩提树下的杨过 阅读(324) |
Silverlight如何发起Get/Post请求
菩提树下的杨过 阅读(960) |
菩提树下的杨过 阅读(656) |
摘要: 企业应用中,经常会遇到一些需要定时自动执行的程序来完成某些功能,比如:自动定时从第三方web service取回数据、定时对历史数据进行清理、定时向ftp上传业务数据...这类程序,我习惯称为“机器人”程序,就象机器一样机械、高效、重复的执行某些任务。通常部署上线后,都是放在服务器上一直开着,不允许轻易被关闭,而且最好要有一个界面,随时可以手动方便控制状态或查看运行情况,一旦发生异常情况,能及时通知管理员(Email或短信之类)如果是采用WPF技术开发,以下是几个需要注意的地方:1、无边框窗体(防止用户不小心点到 右上角的关闭按钮)将主窗体的WindowStyle设置成None即可2、无边框窗
菩提树下的杨过 阅读(1005) |
摘要: 业务背景:航空货运系统中,“货运代理商”会定期从“航空公司”领取一定数量的纸质运单(每张纸上有一个单号),这些单号都是连续的(即:每次可以理解为领取一个“号段”),而且每张单子都要向航空公司交纳一定的费用(即:单号是有价的资产)。实际使用中,货运代理商希望下级的各营业点连续把单号用完,如果出现未连续...
菩提树下的杨过 阅读(368) |
摘要: 在IE中,JS可以直接访问剪贴板,但是firefox,chrome等其它&高级&浏览器,就没这么幸运了。网上流传的所谓兼容firefox/IE的剪贴板访问javascript代码,都是N年前的往事了。根据.cn/post/49413/上的说法:----------------------------------火狐不允许网页操作用户的剪切板,因为有安全问题,网页可能盗用你复制的密码等等。以前可以通过修改设置提权,允许网页获得高权限,操作剪切板,目前火狐已经取消了这个接口。不再允许,所以修改了设置也无效,目前还是自己通过快捷键复制吧。---
菩提树下的杨过 阅读(2228) |
摘要: 业务系统中,很多录入人员习惯于用Enter键来代替Tab键切换控件焦点(虽然我个人并不觉得这样录入速度会变得有多高效,呵呵),有需求了,自然就得想办法满足。思路:为了更灵活的控件焦点顺序,我决定用TabIndex来做文章,每个输入控件按下回车时,找到下一个比当前控件TabIndex更大且最接近的控件,然后focus().XAML界面部分:&UserControl x:Class=&tab_key_test.MainPage& xmlns=&/winfx/2006/xaml/presentation&qu
菩提树下的杨过 阅读(1886) |
摘要: 今天遇到一个需求,要求能对可拖动的对象提供二种模式:允许拖动、禁止拖动。之前的拖动为了省事,直接用了:Blend自带的MouseDragElementBehavior,于是就需要在cs代码中控制这个东东了。折腾了一下,还算简单:xaml代码&UserControl xmlns=&/winfx/2006/xaml/presentation& xmlns:x=&/winfx/2006/xaml& xmlns:d=&http://sc
菩提树下的杨过 阅读(1672) |
摘要: telerik的控件总体来说质量还算上乘,但是偶尔也会遇一些小bug:比如 &telerik:RadMaskedTextBox Mask=&n& MaskType=&Numeric&/&,这样的本意是让输入框只能输入带小数位的数字,但是很多用户在输入“零点几”的小数时,通常直接输入&.12&,即:不输入第一个0,直接输入点,这时你会杯具的发现,整个屏幕直接白了(Silverlight应用程序级的错误).我没看telerik的源码,任感觉猜测应该是&.“在Convert成浮点数时抛异常了(老外估计也没想到中国人这么
菩提树下的杨过 阅读(1781) |
摘要: Silverlight并没有象flash那样直接提供画线、画圆、画曲线的方法,只能用Path来生成贝塞尔曲线。下面是示例代码:XAML部分:&UserControl x:Class=&SLCurveSample.MainPage& xmlns=&/winfx/2006/xaml/presentation& xmlns:x=&/winfx/2006/xaml& xmlns:d=&http://schemas.m
菩提树下的杨过 阅读(2078) |
摘要: iFrame如果嵌入的是普通网页,这种场景下的iframe高度自适应解决方案,百度一下随手都能找到一大把。但是嵌入Silvelight时,嵌入iframe的父页面默认不知道Silverlight内容的真实高度,所以上述办法就不起作用了。其实只要换个思路:既然父页面不知道iframe中SL的高度,SL难道不能自己主动向父页面汇报自已的高度吗?先看最终的效果:注:Page1,Page3均是SL中的UserControl代码见下面的源代码:主要步骤为1、SL在每个页面的Page_Loaded中,通过与父页面的js交互,主动报告当前SL页面的高度2、父页面得到高度后,用js动态调整iFrame/Fra
菩提树下的杨过 阅读(1984) |
摘要: 直接给码:&UserControl x:Class=&SilverlightApplication1.MainPage& xmlns=&/winfx/2006/xaml/presentation& xmlns:x=&/winfx/2006/xaml& xmlns:d=&/expression/blend/2008& xmlns:mc=&quot
菩提树下的杨过 阅读(2270) |
摘要: 默认情况下,Silverlight自带的ListBox控件如果内部有多个TextBox,用户无法用键盘上的Tab键,在ListBox内部的TextBox之间切换。但Teterik RadControls 中的telerik:ListBox却很好的解决了这个问题,只要把telerik:ListBox的IsTabStop设置成false,同时把TabNavigation设置成Local即可(而SL自带的ListBox就算设置了这二个属性,Tab键需要按二次才能切换焦点)完整Xaml代码:&UserControl xmlns=&
菩提树下的杨过 阅读(660) |
摘要: 当RadGridView中嵌套RadComboBox,且RadGridView的高度不够出现滚动条时,上下拉动滚动条后,RadComboBox中的选中值将丢失!如下图:滚动条未拖动前滚动条上下拖动后(注意下图的高亮部分)重现该Bug的测试代码:Model层TextValueObject.csnamespace RadControlsBug.Model{ public class TextValueObject { public string Text { } public string Value { } }...
菩提树下的杨过 阅读(1805) |
摘要: 直接给码:using Susing System.IO;using Telerik.Windows.Znamespace JIMMY{ public static class ZipHelper { /// &summary& /// 利用telerik的zip库压缩字符串 /// &/summary& /// &param name=&str&&&/param& /// &returns&&/returns& public static string CompressString..
菩提树下的杨过 阅读(901) |
摘要: 当ScrollViewer里包含很多子控件时,默认情况下只能用鼠标手动拖动(或滚轮)滚动条以实现内容的滚动,假如用户是键盘高手,习惯于用Tab键来切换子控件焦点时,即使当前获得焦点的控件在不可见区域,滚动条也不会自动跟随着滚动到相应位置,这个非常不方便,今天在网上看到一个老外的解决办法,代码转贴于此: private void _ScrollViewer_GotFocus(object sender, RoutedEventArgs e) { FrameworkElement element = e.OriginalSource as Fram...
菩提树下的杨过 阅读(804) |
摘要: 一、按模块分包一般大型的Silverlight应用,都会按模块分解成多个silverlight project,编译后就有多个xap包,然后在需要用到的场景按需加载。我近期开发的这个项目不需要全站Silverlight,而是aspx混合silverlight,说得更白点,就是把相应的子模块xap包嵌入aspx.这样分包就简单多了:直接用js控制dom元素,修改object元素中的source,动态设置成不同的xap即可实现无刷新的加载不同模块。(这比网上主流的方式:用WebClient动态下载xap包,最终再反射加载,个人觉得更简单。当然,这种方式不适用于整站Silverlight的项目)二、
菩提树下的杨过 阅读(1371) |
摘要: 项目开发中遇到一个要求,需要将ComboBox右侧中的小三角箭头给去掉,通过Blend工具“编辑ComboBox的模板副本”得知,这是一个名为&BtnArrow&的Path。但是在CS代码中,是无法引用到这个控件的。解决办法:重新定义一个类,继承自ComboBox,然后重写OnApplyTemplate方法,代码如下using System.Wusing System.Windows.Cusing System.Windows.Snamespace ContentTemplateTest{ public class YJMCombo
菩提树下的杨过 阅读(1568) |
摘要: Blend自带的行为MouseDragElementBehavior应用到ListBox后,如果用鼠标按住列表列拖动,没有任何效果,在多次尝试中意外发现,如果将ListBox的边框设置成一个较大值,在边框上点击时,却可以拖动,但是一般开发中,没人会把ListBox设置一个粗粗的难看边框。于是想到了下面的变通解决办法:当鼠标进入时显示边框,鼠标离开时再隐藏边框。示例代码:Xaml部分&UserControl xmlns=&/winfx/2006/xaml/presentation& xmlns:x=&ht
菩提树下的杨过 阅读(893) |
摘要: 在SL开发中,通常会将项目按模块分成多个xap实现按需下载,但是由于浏览器的缓存,就算某个模块代码修改过并重新发布到服务器,如果这个xap已经在浏览器缓存中,实际加载时,仍然有可能调用的是本地缓存,而非最新的版本。通常解决这个问题的办法是在xap包的下载地址后附加一个随机数,类似/abc.xap?t= 之类。但是这样相当于强制浏览器每次去重新下载xap文件,缓存机制被完全给干掉了,特别是对于一些大型项目,xap通常比较大,每次重新下载,需要较长时间,用户的体验非常差。相对比较科学的方法是用&版本号&来替换&随机数&q
菩提树下的杨过 阅读(3930) |
摘要: 1、前言作为一个多年从事b/s开发的程序猿,曾先后使用过asp、asp.net做为主要服务端语言。不管是相对低级的asp也好,还是高级的asp.net也罢,都100%会遇到&数据绑定&问题。2、什么是“绑定”?广义来讲,如果服务端的数据需要在页面上呈现,并且这份数据需要与整个页面(或页面的某个部分)建立关联(不管是单向关联还是双向关联),这就是数据绑定。3、“赋值”是个好办法在asp年代,压根儿就没有控件这一说,所以服务端的数据呈现,基本上就是通过在页面中内嵌&%=xxx%&来实现的(xxx可理解为一个定义的变量),要改变显示的内容,最方便的方法就是给变量xxx
菩提树下的杨过 阅读(2299) |
摘要: 默认情况下,silverlight在调用wcf时,如果传递的参数长度大于8192字节,即8k,会提示Not Found错误。解决方法如下:1、wcf服务端修改web.config 如下:&?xml version=&1.0&?&&!-- For more information on how to configure your ASP.NET application, please visit /fwlink/?LinkId=169433 --&&configuration& &syst
菩提树下的杨过 阅读(2348) |
摘要: 这是上一篇“Silverlight:双向绑定综合应用-自动更新集合汇总字段”的续篇。需求场景如下:一个公司,有N个员工,逢年过节时要搞一些抽奖活动,最终要公告收奖名单。&员工&类如下:namespace CollectionBinding{ /// &summary& /// 员工类 /// &/summary& public class Employee : NotifyPropertyChangedObject { private string _name = &&; public string Name { set { _n
菩提树下的杨过 阅读(1268) |
摘要: 场景:有一家公司(类名:Company),它有N多员工(类名:Employee)。要在界面上用网格显示所有员工的姓名、工资,并且当操作用户在网格里对员工进行增减或修改其工资时,能自动汇总出员工工资的总和并显示出来。员工类 Employee代码如下: /// &summary& /// 员工类 /// &/summary& public class Employee:INotifyPropertyChanged { private string _name = &&; public string Name { set { _name =
菩提树下的杨过 阅读(1907) |
摘要: 对象拖动是一个老生常谈的话题,在SL上要实现对象拖动,一般有三种思路:一、基于Canvas绝对定位布局的拖动这种处理方法最简单,修改对象的Canvas.Top与Canvas.Left即可,简单明了!在线案例: silverlight图片局部放大效果但是很多时候,我们采用的布局并不是Canvas,如果仅仅为了实现对象拖动,把整个布局重构,代价太大,有点得不偿失。二、基于对象Margin值的拖动Margin是对象的通用属性,通过改变Margin值理论上可在任何布局下,重新定位对象的位置。在线案例: silverlight:类似iBaidu,iGoogle的拖放功能缺点就是算法处理有些小复杂,初次看
菩提树下的杨过 阅读(2927) |
摘要: 某些场景下,想将一个对象快速隐藏、恢复,而且不影响布局。有一种方法:将对象的透明度在1与0之间切换。问:为什么不用Visibility? 答:这通常会导致重新布局,即剩余可显示的控件可能会产生移动。在一些特定场景,比如报表套打中,明显不适用。但是切换透明度的方法,有时候也不太好用,比如一个Border里再套其它控件,如果只是想快速去掉Border的边框显示,而保留Border中的控件继续呈现,就不适用了。(因为Border的透明度为0后,也会同步隐藏Border内部的控件)。解决方法就是:修改Border边框颜色值中的A分量,让其在0与255之间切换。 private void btnTest
菩提树下的杨过 阅读(472) |
摘要: 如果SL是以浏览器模式运行的,要想找到满意的快捷键,通常会让人郁闷,因为浏览器会优先拦截掉大部分默认的快捷键,如果您还安装了某些IE插件,它们的优先级也比SL高,此外,如果还开着QQ等东东,QQ又会占用一些快捷键,这样剩下可用的快捷键就不多了。测试代码如下:void MainPage_KeyDown(object sender,KeyEventArgs e){ e.Handled = ModifierKeys keys = Keyboard.M bool b1 = if ((e.Key &= Key.A && e.Key &lt
菩提树下的杨过 阅读(1139) |
摘要: web前端的自动化测试,一般要能实现模拟鼠标点击、键盘录入、浏览器页面自动导航等功能,而且关键的是要对整个测试过程能自动录制并回放。vs2010的SP2已经集成了内置功能,但是目前尚未正式发布,所以本文就不介绍了。有兴趣的同学可参考以下文章:/zh-cn/library/gg413374/scottxu/archive//1967112.html除了微软自家即将推出的vs2010 sp2之外,不少第三方厂家也推出了相应的解决方案,比如Ranorex(园子里有兄弟写过入门文章:htt
菩提树下的杨过 阅读(3222) |
摘要: 默认情况下,vs2010并不能创建&Silverlight的单元测试&项目,不是vs2010做不到,只是MS没有推出模板而已。没关系,在联机模板里下载一个,如下图:安装完成以后,就能创建SL单元测试项目了,如下图小试一把:先创建一个SL类库项目,名为SLTools,里面写几行测试代码:namespace SLTools{ public static class MathHelper { public static int Add(int a, int b) { return a + } }}然后再创建一个SL单元测试项目,名为SLUnitTest,创建一个测试类,代码
菩提树下的杨过 阅读(707) |
摘要: 做过WinForm数据库开发的人,一定有类似经历:DataGrid绑定后,如果允许行编辑,数据一顿修改后,想批量保存修改后的结果,通常是将DataGrid的所有行遍历,用FindControl找出其中的TextBox之类的控件,取值,然后处理,如果行模板中的控件变化了,可能之前的处理代码又要修改....Net发展到WPF/SL时代,有了双向绑定,这种痛苦经历已经一去不返了,我们只需要关注数据即可,GridView与数据源之间会相互通知各自的变化情况,批量保存时,不管GridView中的数据用户如何修改,也不用去理会行模板中的控件名是啥,直接对数据源进行处理即可。Xaml示例:&UserC
菩提树下的杨过 阅读(4220) |
摘要: telerik的RadControls for Silverlight内置了以下几种主题样式:Office Black - 这是默认值,无需加载其它任何dll文件. Office Blue -需要引用 Telerik.Windows.Themes.Office_Blue.dll. Office Silver -需要引用 Telerik.Windows.Themes.Office_Silver.dll. Summer -需要引用 Telerik.Windows.Themes.Summer.dll. Vista -需要引用 Telerik.Windows.Themes.Vista.dll. Win
菩提树下的杨过 阅读(3538) |
摘要: 在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕XmlReader/XmlWriter将成为唯一选择了,下面是示例代码:using System.IO;using System.Tusing System.Xnamespace slLib{ public class Person { private string _name = &&; /// &summary& /// 姓名 /// &/summary& public str
菩提树下的杨过 阅读(1091) |
摘要: 前言:此乃水文,高手绕道.只要是稍微象样点的项目,一般都会先弄一个PageBase或UserControlBase做基类,然后其它页面/用户控件继承自它,标准的写法如下:先定义基类: PageBase.csusing System.Windows.Cnamespace sl_test{ public class PageBase:UserControl { }}然后创建一个用户控件Page1继承自它:后端cs部分:namespace sl_test{ public partial class Page1 : PageBase { public Page1() { Initial
菩提树下的杨过 阅读(1385) |
摘要: 相信有不少人遇到过这个恶心的问题,xaml与cs编译正常,也能在浏览器里运行,但是就是无法在vs.net或blend里以【设计视图】方式打开,只能对着代码视图盲打。(个人觉得这是blend与vs.net的一个严重bug)出现这个问题的原因,多半是在构架函数里用到了HtmlPage,运行时SL是host在浏览器里的,HtmlPage即为将它嵌入的页面,而在vs或blend里预览时,宿主是IDE开发环境,并不是网页,因此找不到HtmlPage最终报错(这只是个人分析的,不保证正确.)解决办法,在构造函数最开始,用代码判断当前是否为设计视图,如果是,则不执行后面的代码:
菩提树下的杨过 阅读(1054) |
摘要: 默认情况下,如果SL项目引用了一些其它程序集(即通俗意义上的dll文件),在编译打包时,这些dll会全部打包到一个xap文件里,随着引用的dll文件越来越多,xap文件会越来越大。这还不是最严重的问题,如果确实需要使用这些dll,大就大吧,要用它容量肯定就会增加。但是如果多个SL项目都要引用相同的程序集时,这些dll会重复打包进每个xap文件,用户在加载多个xap时,实际上是重复下载了这部分dll文件,带宽使用率太低。为了改善这种情况,SL引用了&应用程序库缓存&的概念,在vs2010的SL项目中,打开SL项目的属性页,会看到一个选项:“通过使用应用程序库缓存减少XAP大小
菩提树下的杨过 阅读(1850) |
摘要: 直接上图:Xaml部分代码:&UserControl xmlns:telerik=&/2008/xaml/presentation& x:Class=&Telerik.Sample.AutoComplete& xmlns=&/winfx/2006/xaml/presentation& xmlns:x=&/winfx/2006/xaml& xmlns
菩提树下的杨过 阅读(3753) |
摘要: 相信很多人都听说过这句名言:garbage in ,garbage out ! 数据录入不规范(或错误)就象一颗定时炸弹,迟早会给系统带来麻烦,所以在数据录入时做好验证是很有必要的。相对传统asp.net开发而言,SL4中的数据验证要轻松很多(主要得益于Xaml的Binding特性),步骤如下:1、定义业务Model类时,在需要验证的属性setter中,写好业务逻辑,对于不合规范的value,要抛出异常!同时切记Model类要实现INotifyPropertyChanged接口,同时每个setter方法的最后,要显示调用OnPropertyChanged方法比如,我们要做一个会员注册填写资料的
菩提树下的杨过 阅读(2705) |
摘要: 如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool!原理并不复杂,可参见以前写的Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告.xaml部分:&UserControl xmlns:telerik=&/2008/xaml/presentation& x:Class=&Telerik.Sample.Transition& xmlns=&http://schemas.mic
菩提树下的杨过 阅读(1756) |
摘要: 几乎所有的业务系统都有弹出窗口,典型场景有二种 :1、简单的弹出一个对话框显示信息,比如下面这样:这个很简单,代码示例如下:DialogParameters pars = new DialogParameters(); pars.Header = &信息&;pars.Content = &Hello World&;RadWindow.Alert(pars);2、点击某条记录的“编辑”按钮,传入ID参数,弹出一个窗口,编辑保存后,将操作结果返回给父窗口这种场景下,要求:a)弹出窗口能接受到父窗口传过来的参数b)弹出窗口关闭时,父窗口要能区分出是通过什么操作
菩提树下的杨过 阅读(3988) |
摘要: 实际开发中控件的数据源肯定是动态绑定的,不可能在xaml里写死item项。既然要绑定,就先来几个实体类:上面是类图,各类的代码如下:ponentMnamespace BusinessObject{ public class BusinessBaseObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyC /// &summary& /// 属性改变时触发事件 /// &/su
菩提树下的杨过 阅读(6181) |
摘要: 在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择、分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了解决方案一:利用Silvelright ToolKit(微软的开源项目),项目地址/在线演示地址:http://silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html解决方案二:telerik公司的Rad for Silverlight商业控件(收费控件)在线演示地址 http:
菩提树下的杨过 阅读(4424) |
摘要: 默认情况下,windows phone7开发工具只能在windows7上安装,我的本本上好不容易把win2008 r2以及相关软件安装好,总不能因为这个又把win7装回去吧,百度了一下,还真有人研究这个,把解决方法贴在这里备份:1、下载wp7开发工具安装文件,下载地址:/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce&displaylang=en2、将下载到的文件(vm_web.exe)解压。方法:在命令行模式下,输入vm_web.exe /x
菩提树下的杨过 阅读(1003) |
摘要: 注:这个程序最初是专为iOS平台开发的(当然是公司外包给一个兄弟做的,现在已经在itunes store里发布了,直接在itunes store里搜索&星座运程合缘&就能找到,上线一周左右,已经有7位用户下载购买了).年前无大事,在webcast上看了&林永坚(Jake Lin)&的wp7视频两天,发现跟传统的SL开发有90%以上完全相同,如果您有SL的开发或学习经验,基本上只要一二天,就能直接转行做WP7开发,简直太方便了。(比如象我这样,整套视频只看了一半就已经可以动手做一些小应用了)下面是将&星座运程合缘&移
菩提树下的杨过 阅读(979) |
摘要: Silverlight从其它系统获取外部数据的常规途径无非下面2种:1、直接远程加载文本或xml文件 (直接请求ashx/aspx,然后在ashx/aspx上输出信息也可以归入这一类)2、通过wcf/webService取得数据(当然,sl跟本机的sl之间也能交换数据,但这个用处有限,此外通过socket也能拿到数据,但是socket要玩好并不容易,难度系数有点高,本文不做讨论)而返回的数据格式,...
菩提树下的杨过 阅读(2391) |
摘要: sliverlight中一个用户自定义控件(比如MyControl.xaml)如果注册了CompositionTarget.Rendering事件(相当于Flash中的Enter_Frame,在进入每帧时触发),然后在MainPage.cs用代码动态添加时,有二个细节要注意:1、MyControl实例在new出来以后,如果还未添加到MainPage.xaml中的根容器中,其对应的Compositi...
菩提树下的杨过 阅读(890) |
摘要: 昨晚在一国外博客上(从域名后缀pl上猜想应该是波兰)看到这种效果(Mouse Avoid 躲避鼠标),是基于Flash/AS3开发的,这个示例把弹性运动,摩擦力,均加速运动等多种物理学原理综合运用在一起,产生了不错的交互效果。在线演示as3.0代码如下:测试代码:看完AS3的代码后,我就在想如何移植到Silverlight上来,下午抽空研究了一下,基本上用Silverlight还原出来了,但由于S...
菩提树下的杨过 阅读(3231) |
摘要: 今天做项目时遇到一个小需求:要将字符串中的回车符号替换成其它符号(比如"&br/&")。 考虑到不同的情况下,有些系统中是用\r\n作回车符,有些仅用\n就代表回车符了。以前都是用String类的Replace方法连接替换多次来处理的,今天突然想改为正则表达式一次性搞定,但又怕性能上消耗太大,于是写了下面的测试代码:输出结果:11111 * 22222 * 33333 * 44444 ...
菩提树下的杨过 阅读(3116) |
摘要: 题外话:个别朋友总是问我同样的问题,做为一名c#/silverlight程序员为啥还要学flash ?回 答:看日本片时,就不能对照看欧美的么? 不体会日本的细腻,又怎能感觉到欧美的粗放;同样都是web相关的技术,不必报门户之见;何况这二者有很多可以相互借鉴的东西。注:这个例子来自[FL车在臣](在blueidea上又名&寂寞火山&)翻译的&Animation ...
菩提树下的杨过 阅读(1747) |
摘要: Silverlight/WPF中,如果要在多线程中对界面控件值做修改,用Dispatcher对象的BeginInvoke方法无疑是最方便的办法 ,见:温故而知新:WinForm/Silverlight多线程编程中如何更新UI控件的值但今天发现WPF中的BeginInvoke却无法自动将匿名方法/Lambda表达式转变成Delegate类型(注:对委托,匿名方法,Lambda感到陌生的朋友先阅读温故...
菩提树下的杨过 阅读(7638) |
摘要: 状态检测主要包括二个方面:是否安装了摄像头,摄像头是否被其它程序占用视频截图有二种方法:一是直接利用CaptureSource类的CaptureImageAsync异步截屏,另一种是直接利用WriteableBitmap截屏幕,二种截屏方法的区别在于,CaptureImageAsync始终截的是视频原始内容,而直接用WriteableBitmap对指定区域截屏时,如果视频上面还有其它控件(比如Te...
菩提树下的杨过 阅读(1852) |
摘要: Silverlight3中的scoket只支持tcp协议,而对于udp一直以安全原因拒绝支持,但在silverlight4中可以惊喜的发现 System.Net.Sockets下多出了二个类:UdpAnySourceMulticastClient,UdpSingleSourceMulticastClient根据msdn官方的解释:/en-us/li...
菩提树下的杨过 阅读(3594) |
摘要: 用MS的silverlight来生成Adobe的pdf文档?象不象到肯德基买麦当劳? 哈...言归正传:首先要用到下面二个开源库1.开源项目 / silverlight的pdf开源库2.FluxJpeg 借助这个可将位图转换化base64字符串,项目官方地址已经找不到了,反正google,baidu一下N多下载注:社区里总会有一些好心人做善...
菩提树下的杨过 阅读(4229) |
摘要: 曾经发过一篇如何在Silveright中利用XmlSerializer序列化对象的文章“Silverlight中的序列化”,限于当时的认识有限,一度以为silverlight只有这一种办法,今天意外发现,其实还有更好的方式,特此做一个汇总与比较1.json序列化方式silverlight支持json字符串已是众人皆知的事情,没啥好说的,有点容易让人误导的是:我们在vs的si...
菩提树下的杨过 阅读(4224) |
摘要: 主要代码修改自园子里"smjack"的【原】改进了的"利用Silverlight实现类似iGoogle的浮动拖拽效果",修改说明:1.将原来的列宽度等分,改为允许非等分2.增加了最大化,最小化,关闭功能3.模块太多,导致Silverlight显示不下时,自动加上垂直滚动条本想将模块设置功能抽时间完成一下,但近期又迷上ROR了,不知道什么时候才会完成这个东东(也许永远不会完成),先把这几处修改完成的...
菩提树下的杨过 阅读(1851) |
摘要: 原文:/zhouyinhui/archive//809553.htmlyjmyzz提示:读懂以下内容可能需要掌握(高中)数学中的"向量运算",以及(大学)数学&线性代数&中的"矩阵运算",如果您对此不熟悉,建议先百度词条温习一下。虽然在WPF中可以使用TranslateTransform、RotateTrans...
菩提树下的杨过 阅读(1132) |
摘要: 一、不写代码的方法:用Blend看图说话:这是待处理的图片win7在win7上,画一个矩形,再用钢笔随便画个封闭的path将矩形与path合并组成复杂的路径将合成后的复杂路径与win7图片同时选中,然后生成剪切路径这样我们就得到了一个不规则的图片轮廓(当然这里演示的去掉不规则部分,反过来就是挖洞)二、用代码挖洞原理:先用WriteableBitmap把原图片复制一份,然后将原图隐藏,接下来把指定区...
菩提树下的杨过 阅读(1346) |
摘要: 先上演示地址:/jimmy/QQCapture/注:首次点击,会提示未安装ActiveX插件,下载安装成功后,刷新页面,就可以截屏了。提示:该ActiveX插件是我用Delphi7开发的纯绿色插件(调用了QQ公司的公开dll),默认会安装到c:\Capture下,大伙儿玩腻了以后,点击c:\capture\uninstall.bat,然后删除整个c:...
菩提树下的杨过 阅读(4176) |
摘要: 上一篇"base64编码在silverlight中的使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而WriteableBitmap又能从BitmapSource直接构造,so ... 问题解决了先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64的byte[]数组,再然后您可以把b...
菩提树下的杨过 阅读(5569) |
摘要: 在传统的.net应用中,使用base64编码字符串是一件很轻松的事情,比如下面这段代码演示了如何将本地文件转化为base64字符串,并且将base64字符串又还原为图片文件.base64编码在传统.net程序中的应用(by 菩提树下的杨过 /) Code highlighting produced by Actipro CodeHighlighte...
菩提树下的杨过 阅读(3425) |
摘要: 这种应用现在已经比较常见了,比如论坛回贴中的手写功能 ,IM聊天中的个性化手写文字,个性签名等,在Silverlight中要实现该功能其实非常简单,只要一个InkPresenter控件即可使用要点:1.要合理设置裁剪区,否则手写时可能笔划会写到你不希望出现的地方.2.处理好MouseLeftButtonDown,MouseMove,LostMouseCapture这三个事件.演示代码:前端Xaml...
菩提树下的杨过 阅读(2801) |
摘要: Xaml如下:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)/--&&UserControlx:Class="ToolsTest.Test"xmlns="/winfx/2006/xaml/p...
菩提树下的杨过 阅读(2768) |
摘要: Silverlight中只有可视化树,没有WPF中的逻辑树,这一点可从SL的sdk文档中得到印证:可视化树概念也存在于 WPF 中,它与 Silverlight 的可视化树概念类似。然而,一个显著的差异是 WPF 还提供一个附加的筛选器或对象树(称为"逻辑树")的概念。逻辑树概念与某些属性系统行为相关。Silverlight 不通过帮助器类来公开此逻辑树。Silverlight 中的确存在某些(但...
菩提树下的杨过 阅读(3724) |
摘要: 2009年最后一天,分享一个不错的Silverlight开源自定义布局:CollectionFlow,原作者博客:http://mentas./Blog/cns!A8D899E9B03A6E15!784.entry上面还有源代码下载效果图:简单分析下原理:先将所有元素堆叠在布局横向中心点,然后找到当前显示的元素,将其作为分界点,将其它元素分成左右二堆,依次移动变化为了...
菩提树下的杨过 阅读(1247) |
摘要: Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。Silverlight的sdk文档中,有一段话:...maxFramerate 值可通过 Silverlight 插件对象的...
菩提树下的杨过 阅读(610) |
摘要: 效果:其实原理很简单:1.先把最外层布局的Cursor设置为None,即隐藏系统默认的光标2.然后在最外层布局的鼠标移动(MouseMove)事件里,弄一个对象鼠标跟随即可源代码下载:/yjmyzz/MyCursor.rar
菩提树下的杨过 阅读(934) |
摘要: 先看效果:wrapPanel的效果在固定宽度的情况下看不出来,可查看在线演示地址:/jimmy/CustomPanel/这些布局,有些是从wpf上移植过来的,有些是自己写的,有些是网上搜集的,也许以后有用,先贴在这里介绍:FishEyePanel:从老外写的wpf版"鱼眼"效果移植过来的,Mac机上的工具条所说就是这种风格CellPanel:将布局等...
菩提树下的杨过 阅读(1468) |
摘要: 很多时候,blend在制作动画时,会自动为对象生成如下代码:[代码]如果想在cs代码中动态控制,就得先知道如何引用它们,在不借助x:Name的情况下,可以这么做:[代码]上面的代码,将生成一段动画:1秒钟内将矩形旋转135度
菩提树下的杨过 阅读(506) |
摘要: 虽然Silverlight提供了几种基本的布局方式,比如Canvas,Grid,StackPanel,Border...,但有时候可能仍然会觉得不够用。这时候我们可以通过继承Panel,并重写MeasureOverride 和ArrangeOverride 方法,以实现自己的布局,事实上Canvas,Grid,StackPanel就是继承自Panel,并自行实现这二个方法实现的。布局过程中,有二个...
菩提树下的杨过 阅读(2086) |
摘要: 原文出处:国双科技-黄勇坚 Silverlight布局管理1. 布局管理介绍复杂的页面、软件界面都是由若干个界面部件组成的。每个部件占据着屏幕的一个部分。如何将这些部件有机地放在用户界面中,并且适合种尺寸大小的显示,成为界面设计者的一大难题。在界面的大小改变时,界面中的控件的位置和大小均会发生变化,如有的控件自动产生滚动条,有些控件之间的距离变小或者变大,有的控件的宽度和高度变小,有的控件大小不变...
菩提树下的杨过 阅读(1756) |
摘要: 学习SL/WPF,Dependency Properties(依赖属性)是一个全新(陌生)但又无法回避的概念。http://www.wpftutorial.net/DependencyProperties.html这里有一篇通俗易懂的相关文章,不过是E文的,E文不好的朋友,也可以参考下面的内容:1.为什么会出现依赖属性?先回想一下传统的属性(Property):通常我们读取或赋值一个属性时,实际上...
菩提树下的杨过 阅读(1108) |
摘要: 关键点:1.利用WebClient的DownloadProgressChanged事件更新下载进度2.下载完成后,分析Xap包的程序集Assembly信息3.利用Assembly反射还原对象并加载到当前页中。好处:1.可以先定义一个简单的加载动画,吸引用户注意,避免长时间的无聊等待,改善用户体验。2.实现按需加载,避免一次性下载过多内容。3.在一定程度上,增加了破解难度,有助于代码保密。Xaml ...
菩提树下的杨过 阅读(2901) |
摘要: 这仅仅只是一个思路的问题,silverlight没办法直接调用activex,但是silverlight可以跟js很好互动,而activeX又能跟js交互,so...把javascript当作桥梁,就能把silverlight与activeX联系起来了,即:js调用activex --& silverlight调用js
菩提树下的杨过 阅读(2643) |
摘要: 一直觉得SL中的wcf双工通讯方式有点鸡肋,如果是以http方式实现则效率太低,如果用SL4中的tcp方式实现,又跟socket太雷同,所以一直没去研究,不过这东西在对性能要求不高时(比如在网页上每5分钟更新一次天气预报/股票信息),实现起来还是蛮方便的.wcf双工通讯与传统的wcf相比,最大的区别就是:传统的wcf通常都是客户端去调服务,即客户端从服务端上“拉”信息,而双...
菩提树下的杨过 阅读(1301) |
摘要: 1.sl调用js比如我们在页面中定义一个js函数:&script type="text/javascript"& function fnTest(msg) { alert('fnTest:' + msg); } &/script&sl中可以有二种调用方式:HtmlPage.Window.CreateInstance("fnTest", "CreateInstance");或...
菩提树下的杨过 阅读(9317) |
摘要: /在webabcd的socket演示基础上,做了一些完善和扩展,实现了以下功能:1.文字聊天 2.允许本地图片发送 3.允许文件传送并保存到本地 4.文字颜色可自定义 5.允许私聊 6.在线列表查看 7.用户进入/离开聊天室的广播通知8.用户呢称更改的广播通知9.允许屏幕截图并保存jpg到本机(需要activeX支持)1...
菩提树下的杨过 阅读(3383) |
摘要: 这种应用场景其实很多,比如游戏中装备/魔法的选择菜单,这里借用了"深蓝色右手"的一张图再比如聊天室中的文本颜色设置虽然sl的ToolTipService.ToolTip属性可以设置任何对象,比如下面这样代码 Code highlighting produced by Actipro CodeHighlighter (freeware)/-...
菩提树下的杨过 阅读(2668) |
摘要: 今天在蓝色上看到一篇介绍WritableBitmapEx的贴子(是开源项目),项目地址:/对SL的WritableBitmap做了一些扩展,可以方便的绘制一些基本几何形状,示例代码如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http...
菩提树下的杨过 阅读(753) |
摘要: ListBox是一个很有用的控件,其功能直逼Asp.Net中的Repeater,它能实现自定义数据项模板,纵向/横向排列Item(如果扩展一下实现自行折行,几乎就是SL版的Repeater了--实际上WrapPanel已经实现了,不过没有默认集成在SL3中).这里推荐一个老外的文章 /delay/archive//lb-sv-faq-e...
菩提树下的杨过 阅读(2802) |
摘要: 先来看xaml部分代码 Code highlighting produced by Actipro CodeHighlighter (freeware)/--&&UserControlxmlns="/winfx/2006/xaml/presentation"xmlns:x="h...
菩提树下的杨过 阅读(794) |
摘要: 先上演示地址:/jimmy/DeepZoom/步骤:1.先启动PhotoShop,利用自动等分切片功能把图片等分成若干小图片,并导出,参考下图:2.启动Deep Zoom Composera.新建项目,并用Add Image...导入刚才等分好的小图片b.切换到compose面板,把小图片拖出来,并调整位置最终拼成完整的图片c.切换到Export面板...
菩提树下的杨过 阅读(1083) |
摘要: 先回忆一下aspx中的处理:在aspx中,可以直接在后台定义一个变量,然后前台就可以用&%=xxx%&来将其"绑定"html控件上,比如下面这样,实在是很方便:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)/--&usingSn...
菩提树下的杨过 阅读(1777) |
摘要: 很多购物平台中(比如京东购物),浏览产品详情时都有这种效果,前几天看到有朋友问SL能不能实现,当然可以界面:1.左侧小图片(用一个矩形Fill一张图片即可)2.左侧半透明矩形3.右侧大图片(用一个Canvas设置Clip裁剪可视区域作为蒙板,图片放置在Canvas中即可)原理:获取左侧半透明矩形的相对位置,然后动态调整右侧大图的Canvas.Left与Canvas.Top需要知道以下技术点:1.C...
菩提树下的杨过 阅读(4331) |
摘要: 1.粘包目前sl中的socket只能用tcp/ip协议,而tcp/ip本质是一个"流"协议,也就是说数据无边界,发送的就是一连串的字节(没有数据包的概念),因此连续发送时有所谓的“粘包”现象,详细解释如下:比如你设置发送缓冲区的大小是512字节,如果(在相隔时间极短的情况下)连续发送次数据,第一次为500字节,第二次为100字节,实际上你在服务器端接收到的二次数据长度并不是...
菩提树下的杨过 阅读(1460) |
摘要: 序列化简言之是这样一种能力:能够把复杂的对象(Object)变成某种格式的字符串(常见的格式有xml,string,二进制文件等),这样可以方便的在各种系统中传输或交换(比喻socket编程中的数据包只能用byte[]传输),接收方得到该字符串后,通过反序列化可以还原为复杂对象,进而调用对象的方法或属性 -- 跟反射有点沾边:)这里先给出一个WinForm的序列化例子,功能为通过打开文件对话框选择...
菩提树下的杨过 阅读(3888) |
摘要: silverlight中的socket通讯支持,让sl开发基于web的聊天工具成为了可能,后来OpenFileDialog,SaveFileDialog的出现,更使得边聊天边传送图片(文件)得以实现,最新的SL4中又加入了摄像头支持,也许不久真的可以用silverlight开发出功能强大的视频聊天系统,目前唯一还没有解决的是p2p问题,根据sl3的sdk文档所述:Socket 类为网络通信提供了一...
菩提树下的杨过 阅读(3111) |
摘要: 这二天在研究webabcd的socket多人聊天室,想尝试增加一些功能,比如:允许用户除发送文字外,还能发送图片或文件。问题:socket发送数据时,只能发送byte[]数组,且无法附带其它用户自定义参数,服务端如何知道用户发过来的是文字还是图片或是文件呢,所以只能在byte数组上动脑筋了.silverlight中,用户选择的图片或文件,都能变成FileStream,近而变成byte数组,初步想法...
菩提树下的杨过 阅读(1861) |
摘要: 单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如:[代码]运行时,会报出一个无情的错误:线程间操作无效: 从不是创建控件“textBox1”的线程访问它。究其原因,winform中的UI控件不是线程安全的,如果可以随意在任何线程中改变其...
菩提树下的杨过 阅读(4657) |
摘要: 先看效果图:步骤:1.先启动Microsoft Expression Design 3a.画一个正圆,再随便打几个字,同时选中文字和圆b.选择菜单栏中的"对象"--&"路径上的文本"--&"附加文本",调整文本内容,间距等,让其正好布满圆圈,调整好以后,再把圆形的填充和边框去掉(即无填充,无边框)c."文件"--&"导出",格式选择"Xaml Silverlight3画布"2.启...
菩提树下的杨过 阅读(909) |
摘要: 原文:http://blog.csdn.net/banmuhuangci/archive//4192031.aspx刚接触Silverlight的时候,除了其异步应用WCF、流媒体、动画效果等方面外,Socket是最另我兴奋的功能。在Web上实现Socket虽然不是什么新鲜事了,Activex,flash等都可以实现这样的效果,但是Silverlight这样方便的运用Socke...
菩提树下的杨过 阅读(2377) |
摘要: Silverlight4终于支持摄像头和麦克风了,网页上的视频聊天将不再是Flash的专利!今天在一个老外的网站上看到webCam的使用示例(//silverlight-4-webcam-a-quick-glance/),非常简单,转帖整理如此:界面:一个Button,一个Rectangle,哈,够简单吧图1按下按钮,将连接到摄像头关...
菩提树下的杨过 阅读(1084) |
摘要: 不知道为啥,最近很热衷于研究相册效果:)视觉状态(VisualState)真的太好用了,借一句本山大叔的台词:"谁用谁知道"PS:以后帮美女做相册这种“讨女生欢心”的活儿,咱程序员也可以自己来了,光棍程序员们赶紧加油学SL啊,没准终生大事就靠它了!在线演示地址:/jimmy/vsmAlbum/这个里面把图片放大,图片缩小,加载...
菩提树下的杨过 阅读(743) |
摘要: SL4终于支持网络摄像头,很是激动,以后可以完全不用flash那一套了,兴奋之余,发几个美女纪念一下,效果图如下:在线演示地址: /jimmy/photoshow/
源码是根据silverlight.net首页动画效果反编译得来的,下载地址见/yjmyzz/archive//16020...
菩提树下的杨过 阅读(875) |
摘要: 相册/图片切换广告等很多常用小应用中,服务器返回一组图片的uri,然后silverlight利用WebClient异步加载,如果要严格控制加载顺序的话,可以利用Stack(堆栈)或Queue(堆栈)处理,思路:不要全部一起加载,先加载第一个,在完成的异步回调过程中,继续发起一下次异步。回想我们在ajax开发中,有一种技术叫"http长连接",在每一次ajax异步请求完成时,继续发起下一个异步请求,...
菩提树下的杨过 阅读(801) |
摘要: 1.导入命名空间xmlns:clr="clr-namespace:Sassembly=mscorlib"2.然后就可以这样用了&Application.Resources&&ResourceDictionary& &clr:String x:Key="ShowcaseLocation"&http://www.silverlight.net/showcase/&/clr:String&...3.使用 var s = Application.Current.Resources["ShowcaseLocation"].ToString()源文件:blogs.
菩提树下的杨过 阅读(533) |
摘要: {x:Null}:用于设置某属性值为Null,比如&Rectangle Fill="{x:Null}" /&,其实就相当于&Rectangle /&,个人感觉这个纯属MS的多余设计另外要注意一个问题:&Rectangle x:Name="rect" Stroke="Black" Width="90" Height="90" MouseLeftButtonUp="Rec...
菩提树下的杨过 阅读(2114) |
摘要: 本文不涉及高深的设计模式(比如mvc,mvvm之类),也没有太多的编程技巧,只是记录自己做为asp.net开发者学习silverlight中自定义控件开发的一些过程,高手请绕过。先推荐一篇不错的文章/carysun/articles/1259025.html写得很全面,只不过图片讲解不够丰富,初学者可能有些感到跳跃性大了一些。正文开始:做过asp.net...
菩提树下的杨过 阅读(4095) |
摘要: “逐帧动画”与“播放GIF”貌似二个风马牛不相干的问题,其实不然!因为silverlight中的image控件不支持直接把gif动画做为source,所以象做动画常用的"走路的小人","加载loading小动画"...这类经典gif素材,无法直接使用,只能转化为逐帧动画来处理。nasa(silverlight MVP)给出于二种经典的办法:1.类似老...
菩提树下的杨过 阅读(1242) |
摘要: asp.net开发中,数据绑定是一个很简单的概念,控件与数据绑定后,控件可以自动把数据按一定的形式显示出来。(当然控件上的值改变后,可以通过提交页面表单,同时后台服务端代码接收新值更新数据)silverlight中利用控件显示数据这一基本功能当然还保留,只不过因为silverlight应用不需要刷新(也不存在提交表单),所以当控件属性或数据源变化后,在如何相互影响这一块的处理上有所不同。引用一段s...
菩提树下的杨过 阅读(2709) |
摘要: 所谓的deeplink技术是为了解决silverlight(或flash)之类的RIA Web应用无法被搜索引擎收录而出现的,属于SEO范畴。就拿最常见的企业网站为例,里面有企业简介(About),产品展示(Product),联系我们(AboutUs)...等常见模块,如果全站都用silverlight/flash来做,default.html页面上用object嵌入一个xap/swf就完事了,搜...
菩提树下的杨过 阅读(1676) |
摘要: 这篇应该是"silverlight3的"伪"3D续--图片横向轮换"的后续篇章,代码基本上从上篇代码修改而来,界面则抄袭了nasa的相册,自己一直做数据库相关的电子商务开发,虽然断断续续学习了一阵silverlight,但对RIA开发还没找着感觉,基本上仍处于从asp.net程序员看silverlight的初级阶段,这个权当练手,废话不多说,直接看效果图:演示地址:http://images.24...
菩提树下的杨过 阅读(1559) |
摘要: 先准备一个基本的xaml页面[代码]结构不复杂,里面就放了一张图片,同时预置了一个动画storyTest,里面把几种常见的动画形式都列在里面了,下面就来看看如何动态改变storyTest动画的属性(比如改变旋转的起始角度之类)1.直接加x:Name,然后引用赋值[代码]注意高亮部分,然后象这样引用[代码]这样我们就把00:00:01秒时角度由360改为20度了2.利用StoryBoard的Chil...
菩提树下的杨过 阅读(1496) |
摘要: 上一篇里,已经知道了“伪3D”是怎么回事,今天结合以前的做的图片广告轮换,又弄了一个图片切换的小东东,不知道以后有什么用,先贴在这里备份:效果图:因为silverlight的xml读取策略等其它原因,没办法直接在博客中贴出来,下面是在线示例地址:/jimmy/projection/default.htm思路:1.将每个图片以及...
菩提树下的杨过 阅读(1089) |
摘要: silverlight3中的3d效果,实际上是通过2d+算法模拟出来的"伪3D"(个人估计可能是考虑跨平台和显卡硬件支持通用性所以最终采用了这种设计)上面演示了基本的3d效果,本质是通过将图片绕着x,y,z三个轴旋转产生关键代码:[代码][代码]至于3d应用,只是利用y轴旋转+clip属性,排出一个常用相册的UI界面(这种界面以后估计会在触摸屏上流行起来)projection除了这里演示的3个参数...
菩提树下的杨过 阅读(482) |
摘要: silverlight做一些复杂动画时,不可能所有的动画都事先用Blend之类的设计工具"画"好(或者在设计期就在vs里编好),很多时候我们希望在运行时能动态控制动画,或者凭空动态创建一段动画.sl3.0的官方sdk文档里有一节"以编程方式使用动画"讲的就是这个,今天研究了下整理分析于此:对于事先"画"好(或者称之为在设计期准备好的动画),我们可以在运行时通过名字获取动画引用,进而改变某些属性:1...
菩提树下的杨过 阅读(1080) |
摘要: silverlight中不存在Flash中的场景,有的只是一个个Xaml文件,你要是愿意,也可以把它看做"场景"或"窗口",刚开始接触sl时,对于多个xaml之间如何切换,调用,传递参数感到很棘手,下面是我总结的几种方法:1、A.xaml跳转到B.xaml(a)首先需要定义一个公用的接口(interface),如下:using System.Wnamespace ChildWin.C...
菩提树下的杨过 阅读(3931) |
摘要: 演示效果如下: 鼠标点击一次,所有方块向左移动一格思路:1.利用StoryBoard产生移动,每次点击时,该动画播放一次(即移动一格)2.关键:动画播放完毕后,调用Stop方法,以回到初始位置,同时利用代码重新填充数据,造成"保留移动后位置"的视觉假象Xaml代码:[代码]Xaml.cs[代码]
菩提树下的杨过 阅读(1083) |
摘要: 运行效果如下:分析示意图:代码:[代码]解释一下:1.先创建了一个裁减区(起始坐标为50,50,宽度为300,高度为50)--这是必须的,否则超过这个区域的文字也会显示出来2.Storyboard中对二段文字对象的Canvas.Left进行了变化,即完成左移3.RepeatBehavior="Forever"表示这段动画将一直播放下去(即视觉上好象文字在一起向左滚动)
菩提树下的杨过 阅读(2048) |
摘要: 今天下午模仿公司的Flash版图片广告做了一个silverlight版的图片轮换广告,10秒轮换一次xaml代码:[代码]Xaml.cs代码:[代码]源代码下载:/yjmyzz/ImageAd_src.rar
菩提树下的杨过 阅读(1403) |
摘要: 演示地址: /default.html 预览界面:一、布局采用Grid布局,5行2列第一行:为登录/注册信息区第二行:左列为聊天记录区,右列为"最近联系人,我的好友,当前在线"等常见功能区第三行:显示当前聊天对象以及"加为好友","从好友列表中删除"二个按钮第四行: 打字聊天栏第五行:发送按钮二、机制a.采用wcf通讯,silverlight调用wcf得...
菩提树下的杨过 阅读(1501) |
摘要: 这个东西有点象Flash的Cookie,可以用来在客户端存储一些数据,我在官方文档上读到这个功能的第一反应就是:用它来做IM的客户端聊天记录存储太棒了,呵呵这里把官方文档上的示例精减整理了一下,贴在这里纪念先引用using System.IO.IsolatedSusing System.IO;下面的代码展示了,如何在存储区创建目录/文件,以及如何写入文件,读取文件[代码]存储区的默认...
菩提树下的杨过 阅读(427) |
摘要: silverlight不能象flash一样,直接以类似xxx.xap?name=123的方式传递参数,而是要用另一种方式实现:html部分(注意高亮部分):&object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"&&p...
菩提树下的杨过 阅读(2304) |
摘要: 近二日闲来无事,把silverlight的官方文档瞅了瞅,倒腾了一个简单的视频播放器,顺便也测试了下能否播放传说中的h.264,最终效果如下:/jimmy/player/default.html布局思路:Grid做为最外层容器,分上中下三行第一行为视频播放窗口,同时单击视频时"暂停"遮罩层也放在这一行,只不过默认不显示而已第二行为进度条显示区,为了方...
菩提树下的杨过 阅读(4267) |
摘要: 参考了园子里nasa写里的定时器的用法,以及旋转木马的部分代码,弄了一个小小的示例,贴在这里方便以后备查目的:让某一个控件沿着圆形轨迹运动xaml:采用Canvas布局,通过动态修改控件的Margin值来改变位置cs代码:利用定时器触发来设置Margin值xaml内容:[代码]cs代码:[代码]
菩提树下的杨过 阅读(708) |
摘要: silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发现自己弄一个也并非难事,思路和主要代码分享如下:1.通用的&海量&数据分页存储过程在做aspx开发时我已经用存储过程分页多年,这个东东是通用的(不...
菩提树下的杨过 阅读(1733) |
摘要: 今天无意发现一个老外的博客,上面有一篇讲解如何在silverlight中使用DataGrid的文章,很是不错,把地址记在这里,以方便日后查看/scmorris/archive//using-the-silverlight-datagrid.aspx
菩提树下的杨过 阅读(452) |
摘要: 用惯了Asp.Net中的ComboBox和ListBox,想当然的以为SL/Winform/WPF中的ComboBox也应该有类似SelectedValue的属性,但是结果很遗憾,木有!不过,这个问题其实在Winform中就有了,这里给出三种还算简便的解决办法:1.参考/libra163/archive//1370146.html一文...
菩提树下的杨过 阅读(5045) |
摘要: 终于开始正式学习silverlight,虽然有点晚,但总算开始了,今天看了一下sdk,主要是想看下silverlight中如何动态调用数据,对于数据库的访问,sdk中的官方示例多用的是Ado.Net数据服务,方便到是方便,就是感觉Ado.Net数据服务返回的xml太啰嗦了,一点也不精简,数据通讯量太大(N多无用的标签导致客户端与服务端之间传输数据增加了不少),于是想到能否直接用wcf返回json格...
菩提树下的杨过 阅读(3426) |
摘要: 注:以下方法是百度上搜索得来的,整理一下转发于此步骤1.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改):[代码]步骤2.建二个Xaml文件Test.xaml和Test2.XamlTest.Xaml完整内容如下:[代码]Test.Xaml.Cs完整内容如下:[代码]Test2.Xaml完整内容如下:[代码]Test2...
菩提树下的杨过 阅读(1247) |

我要回帖

更多关于 vc combobox控件 的文章

 

随机推荐