文章检索
-
三系统安装 二氧化碳排放量 互联网森林 凤凰 前田约翰 塑料瓶 姓 岳阳 开源 张家界 扫地机器人 无效字符 来历 氏 电话骗局 简单法则 自由行 致命 致癌 节能灯泡 设计方式 说法 长沙 马子 骗子 android C# CMake CMS Durpal ExtJS Godaddy Google Code Google Sync Joomla js页面 linux mac opensuse roomba twitter window wordpress XHTML XML
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
twitter
- @yegle 自己买个剪卡器吧,一次成功,嘿嘿
持续关注
Categories
广而告之
Category Archives: C#
实现HTML的简单压缩
PageReleaser需要一种HTML的压缩算法,Google了很久,发现如果只是简单去除空白和注释的话,使用XLinq就可以轻易的实现 先看看MSDN是怎么说的: 一种常用方案是读取缩进的 XML,在内存中创建一个没有任何空白文本节点(即不保留空白)的 XML 树,对该 XML 执行某些操作,然后保存带缩进的 XML。在序列化带格式的 XML 时,只保留 XML 树中有意义的空白。这是 LINQ to XML 的默认行为。 另一个常见的情况是读取和修改已经有意缩进的 XML。您可能不想以任何方式更改这种缩进。若要在 LINQ to XML 中执行此操作,您要在加载或解析 XML 时保留空白,并在序列化 XML 时禁用格式设置。 简单的说,XDocument载入时,默认使用LoadOptions::None,自动去掉XML的空白;保存时,默认使用SaveOptions::None,自动格式化XML。 也就是说,使用XDocument将一个HTML文档打开什么也不作就保存,其实等于实现了HTML的格式化。 而如果在保存时,使用SaveOptions::DisableFormatting参数,看似要保存XML的空白,由于载入时所有空白都被删掉了,其实等于删除了所有空白,于是去掉空白就这样实现了。 至于删掉注释也很简单,只是需要注意,一般页面嵌入JavaScript会使用注释节点包裹,需要例外处理。 整个HTML压缩代码如下: var nodes = from s in doc.DescendantNodes() where … Continue reading
RichTextBox实现图文并茂
怎么在RichTextBox中插入图片,网上广为流传的方法是,通过剪贴板粘贴的方法,代码如下: openFileDialog1.Filter = "图片文件|*.jpg|*.bmp|*.png|所有文件|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { Clipboard.SetDataObject(Image.FromFile(openFileDialog1.FileName), false); this.RichTextBox.Paste(); } 不过,用剪切粘贴实现图片插入显然是偷巧之作,显得别扭还不够灵活。 其实RichTextBox本身处理的是RTF,只要能按照RTF格式的要求对图片文字进行处理,就可以简单的实现图文并茂。何况已经有处理的很好的控件,比如ExRichTextBox ExRichTextBox实现文本图片的插入,但没有提供链接的支持,尝试添加以下代码: StringBuilder sb = new StringBuilder(); sb.Append(RTF_HEADER); sb.Append(@"{\fonttbl{\f0\fnil\fcharset" + Font.GdiCharSet.ToString() + " " + EncodeAnsi(this.Font.Name) + ";}}"); sb.Append(@"\f0\fs" + (int)Math.Round((2 * … Continue reading
C#实现文件关联
和其他语言一样,C#实现文件关联同样需要直接操作注册表,即按规则分别设置文件扩展名,文档类型说明,友好名称,图标,调用方法等键值即可,网上随便查查就可以写出以下的代码。 using Microsoft.Win32; RegistryKey key = Registry.ClassesRoot.OpenSubKey(".jb"); if (key == null) { key = Registry.ClassesRoot.CreateSubKey(".jb"); key.SetValue("", "Jeebook.Reader.jb"); key.SetValue("Content Type", "application/jb"); key = Registry.ClassesRoot.CreateSubKey("Jeebook.Reader.jb"); key.SetValue("", "Jeebook Document"); RegistryKey keySub = key.CreateSubKey("DefaultIcon"); keySub.SetValue("", System.Windows.Forms.Application.StartupPath + … Continue reading