摘要: 在 WPF 的 ScrollViewer 控件中有 ScrollChanged 事件,到了 Silverlight 就没有此事件了。经常会有需要使用此事件去驱动一些功能的实现,例如延迟加载。网上也流传了一种使用监听 VSM(Visual State Manager) 实现的方法(见这里),但是其方法有点过于复杂,并且效率低下。所以这里放出一种简单的实现 ScrollChanged 事件的方法。 第一步:当然是找到你所需要增加此功能的页面的后台代码; 第二步:在为其增加一个事件public event EventHandler VerticalScrollChanged; 第三步:在此页... 阅读全文
posted @ 2012-02-28 19:25 Aimeast 阅读(5067) 评论(0) 推荐(4) 编辑
摘要: DNS是域名系统的缩写。DNS支持使用TCP和UDP协议,使用53号端口。可能是国产教科书的缘故,许多人都不知道DNS还可以在TCP协议上传输。当然,国内的绝大多数DNS服务器都不支持TCP协议。本文目标:制作一个稳定的、支持TCP和UDP协议的、可强制使用TCP协议请求的、支持IPv6的DNS代理。 阅读全文
posted @ 2011-12-22 23:09 Aimeast 阅读(14962) 评论(15) 推荐(8) 编辑
摘要: CIDR(Classless Inter-Domain Routing)是“无类别域间路由”的缩写。是当前用来表示路由的一种方式。由于在做某产品的时候需要用到CIDR集合的一些算法,例如集合的交集、并集、补集运算。下面给出相应的实现代码。 首先是CIDR的结构: public sealed class CIDR : IXmlSerializable, IComparable<CIDR> { private byte[] bytes = null; public IPAddress IPAddress { get; private set; } ... 阅读全文
posted @ 2011-12-17 01:26 Aimeast 阅读(2522) 评论(2) 推荐(1) 编辑
摘要: 首先请允许我重复造轮子 网络上很早就出现了给 Silverlight 使用的 GB2312 Encoding,但经过使用以后发现问题还挺多的: 不支持流操作 没有回退策略 只实现了解码没有实现编码 运行错误结果太多 支持的字符数目过少 对于上面出现的众多问题,特发布了一个专门针对 Silverlight 应用程序使用的 GB2312Encoding。顺便在这聊聊怎么编写一个 Encoding。 首先需要了解的知识:.NET Framework 中的字符编码,GB 2312,EUC(Extended Unix Code) GB2312 是一种兼容 ASCII 编码的双字节字... 阅读全文
posted @ 2011-10-23 13:19 Aimeast 阅读(3599) 评论(4) 推荐(5) 编辑
摘要: 下面一步一步教你怎么用 Microsoft Expression Blend 4 制作这一动画。所有图片可以点击看大图 第一步:新建一个 Silverlight 项目,取名为 WaitClock 第二步:调整控件大小为 160*160,并挑选一张合适的背景图片 第三步:画好外圈,设置好填充颜色,并把填充颜色转换为资源。然后在连续拖两个椭圆进来,分别设置边距为 25 和 70,并应用 Brush。 先拖一个 Ring 到 LayoutRoot,并设置 ArcThickness 为 13 设置好 Ring 的 Gradient Brush(..),两个点分别是 #70FFFF... 阅读全文
posted @ 2011-10-02 03:08 Aimeast 阅读(3735) 评论(2) 推荐(3) 编辑
摘要: 首先要承认这个标题有那么一丁点标题党,但这又不是完全的标题党。使用“正确”的调试方法的确可以把 VS 给搞死锁了。至于 VS 被死锁了算不算 Bug,这个问题有待于商榷。不想吐槽,先看看怎么用“正确”的方法把 VS 搞死锁。 首先要新建一个控制台项目,完整的复制下列代码:using System.Threading;namespace DeadlockVS{ class Program { static object _obj = new object(); static void Main(string[] args) { ... 阅读全文
posted @ 2011-09-26 23:08 Aimeast 阅读(2978) 评论(7) 推荐(1) 编辑
摘要: 先看效果:(点击可全屏) 再看整体结构: 什么是贝塞尔曲线?请看: http://zh.wikipedia.org/wiki/%E8%B2%9D%E5%A1%9E%E7%88%BE%E6%9B%B2%E7%B7%9A 下图演示的是四阶贝塞尔曲线的绘制过程: 现在说说怎么用 Silverlight 产生这么漂亮的曲线。幸亏,Silverlight 已经为我们准备好了绘制曲线的接口,Path 形状。其中的 Data 属性可以使用“路径标记语法”绘制各种曲线。 例如使用如下代码<Canvas> <Path Stroke="DarkGoldenRod" Strok 阅读全文
posted @ 2011-09-18 18:11 Aimeast 阅读(4992) 评论(7) 推荐(11) 编辑
摘要: 本文 Silverlight 版本:4.0。 首先定义数据类型,此文始终使用此定义类型。 public class SimpleData : ViewModelBase { private string _text; private int _column, _row; public string Text { get { return _text; } set { _text = value; OnPropertyChanged("Text"); } } public int Column { get { return ... 阅读全文
posted @ 2011-09-11 21:45 Aimeast 阅读(2466) 评论(0) 推荐(5) 编辑
摘要: 来源:.Net.NewLife。 需求:假设在某系统存储了许多地址,例如:“北京市海淀区中关村大街1号海龙大厦”。用户输入“北京 海龙大厦”即可查询到这条结果。另外还需要有容错设计,例如输入“广西 京岛风景区”能够搜索到"广西壮族自治区京岛风景名胜区"。最终的需求是:可以根据用户输入,匹配若干条近似结果共用户选择。 目的:避免用户输入类似地址导致数据出现重复项。例如,已经存在“北京市中关村”,就不应该再允许存在“北京中关村”。 举例: 此类技术在搜索引擎中早已广泛使用,例如“查询预测”功能。 要实现此算法,首先需要明确“字符串近似”的概念。 计算字符串相似度通常使用的是动态 阅读全文
posted @ 2011-09-05 19:24 Aimeast 阅读(13441) 评论(29) 推荐(22) 编辑
摘要: 今天在一个群里有人问道画图软件中的拾色功能()是怎么实现的。我只提供了一个简单思路。 总共有两种思路。 思路一:用GDI截取桌面图片之后,用一个无边框窗体显示出来。再通过鼠标事件获取到点击位置,就可以获取到相应的颜色值。 思路二:不用假窗体。直接注册一个底层钩子监视鼠标。再获取到相应位置的颜色。(可能会被视为病毒行为) 第一个思路实现起来要简单一点。第二个思路实现之后,在拾色的时候还能够与应用交互。 这里把第一种思路的代码贴出。using System.Drawing;using System.Windows.Forms;namespace ColorPickerDemo{ public c. 阅读全文
posted @ 2011-08-10 22:19 Aimeast 阅读(1178) 评论(0) 推荐(0) 编辑