随笔分类 -  WPF/Silverlight

Windows Presentation Foundation/Silverlight
摘要:1、The Silverlight 4 SDK is not installed.打开对应的Build Definition,Process -> Advanced -> MSBuild Platform,设置:X862、使用Silverlight Toolkit在xaml上出现类似如下错误:The... 阅读全文
posted @ 2015-04-02 11:49 junchu25 阅读(159) 评论(0) 推荐(0) 编辑
摘要:Ubuntu 14.04.1下运行Terminal,安装Pipelight输入以下命令:sudo add-apt-repository ppa:pipelight/stablesudo apt-get updatesudo apt-get install --install-recommends p... 阅读全文
posted @ 2014-10-11 22:29 junchu25 阅读(832) 评论(0) 推荐(0) 编辑
摘要:重构一个Silverlight应用,并修改对应的所有namespace,启动调试客户端出现错误信息如下:InitializeError #2103 - Invalid or malformed application: Check manifest错误原因在于Silverlight项目属性的Startup Object,它默认继续使用旧namespace的App名称。 阅读全文
posted @ 2013-04-30 16:22 junchu25 阅读(583) 评论(0) 推荐(0) 编辑
摘要:为了让页面javascript订阅Silverlight控件的事件,会包装一个事件机制,最后内部通过调用HtmlPage的一些函数触发它,比如HtmlPage.Window.Eval、HtmlPage.Window.Invoke等。但是在Safari浏览器下这类交互无法成功,比如弹出一个消息框:HtmlPage.Window.Eval("alert('test');");HtmlPage.Window.Alert("test");HtmlPage.Window.Invoke("alert", "test&qu 阅读全文
posted @ 2013-03-05 15:37 junchu25 阅读(1549) 评论(0) 推荐(0) 编辑
摘要:这两天正好在做共享代码,顺便写个体会。在Visual Studio 2012的Portable项目类型之前,为跨多个技术目标类型(Client Profile、Full Framework、Silverlight等)共享代码一般有两种方式:1、共享代码间的复制,比如Class Library和Silverlight Class Library两个项目,一方简单复制另一方的源代码进行编译。好处是对于复制的代码可以进行一定程度的修改,缺点始终只是一个拷贝。2、添加链接,始终只需要修改一处,但可能存在一定程度的不兼容性,这个时候就需要通过条件编译来解决。我个人比较推崇第二种方式,对于不同类型的项目可 阅读全文
posted @ 2012-12-05 19:41 junchu25 阅读(161) 评论(0) 推荐(0) 编辑
摘要:之前基于WPF 3.0开发的应用程序有一个DelegateCommand类型,在升级至WPF 4.0后发现CanExecuteChanged事件产生通知后对应的UI并未产生变化。 1 /// <summary> 2 /// 委托命令 3 /// </summary> 4 public class DelegateCommand<T> : ICommand 5 { 6 /// <summary> 7 /// 命令执行前事件 8 /// </summary> 9 public event EventHandler<CancelEve 阅读全文
posted @ 2012-10-22 15:10 junchu25 阅读(4933) 评论(0) 推荐(0) 编辑
摘要:Silverlight和服务端进行通信前会向服务端请求一个安全策略文件,在Silverlight 3.0中这个请求端口为943、Silverlight 4.0也可以是80。请求的模式取决于你的应用程序中SocketAsyncEventArgs.SocketClientAccessPolicyProtocol所指的值为Http或Tcp。如果是Http,需要在IIS中为80的站点添加net.tcp类型的绑定,并指明端口(4502 - 4530)。Tcp则需要一个应用程序负责监听943端口,当请求为时返回你的策略文件内容。策略文件的格式可以如下:<?xml version="1.0& 阅读全文
posted @ 2012-08-11 12:00 junchu25 阅读(444) 评论(0) 推荐(0) 编辑
摘要:WriteableBitmap可以对元素产生贴图,而这个元素并不需要被实际添加到呈现元素中。Canvas的特点是在给定的宽度、高度显示元素,如果元素超出给定的viewport就不可见。对于一个元素来说裁剪左上部分的图片可以通过Canvas的SetLeft和SetTop函数或者对元素进行移动的变换(TranslateTransform)。而右下角的部分可以通过显示设置Canvas的宽度、高度来定义。比如你可以编写这么一个扩展函数来将元素裁剪到一个Canvas: 1 /// <summary> 2 /// 剪辑为画布 3 /// </summary> 4 /// <p 阅读全文
posted @ 2012-08-11 11:12 junchu25 阅读(384) 评论(0) 推荐(0) 编辑
摘要:Silverlight不同于WPF,自定义Cursor需要通过其它方式实现。我们可以为一个元素定义一个CursorBehavior,建议使用自定义Cursor的Panel为Canvas,否则需要对自定义的Cursor做TranslateTransform。附件Behavior的时候,为Canvas添加一个Image元素,默认Visibility为Collapsed。Image元素的ZIndex值要较大,这样可以确保始终在其它元素前面。订阅Canvas的MouseMove和MouseLeave事件,MouseMove事件产生后用来定位Image的坐标,而MouseLeave事件产生后用来隐藏Im 阅读全文
posted @ 2012-08-11 11:06 junchu25 阅读(597) 评论(0) 推荐(0) 编辑
摘要:在做手写板应用中,往往会将用户的连续笔迹下的图形转换为相应的实际输入大小的文字。比如FontSize为12那么实际的宽度和高度又是多少?你可以创建一个TextBlock并设置它的FontSize,最后调用它的Measure函数获得Size:1 TextBlock tb = new TextBlock();2 tb.Text = “a”;3 tb.FontSize = 12d;4 5 tb.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));6 7 Size fontSize = new Size(tb.Actu 阅读全文
posted @ 2012-08-10 10:07 junchu25 阅读(507) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示