﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Mr. Write</title><link>http://www.cnblogs.com/dc10101/</link><description>always</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 08:19:50 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 08:19:50 GMT</pubDate><ttl>60</ttl><item><title>Firefox shortcuts</title><link>http://www.cnblogs.com/dc10101/archive/2010/01/27/1657399.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Wed, 27 Jan 2010 04:05:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2010/01/27/1657399.html</guid><description><![CDATA[<p>阅读: 10 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2010-01-27 12:05 <a href="http://www.cnblogs.com/dc10101/archive/2010/01/27/1657399.html" target="_blank">原文链接</a></p><p>IE整天爆漏洞，还经常假死，改投Firefox阵营。比起IE和Chrome来虽然多了那么点儿山寨味，但毕竟是没有微软和谷歌这样的巨头扶持下做得最好的浏览器了，简直神话一般。</p> <p>总结一下平常不太注意但很有用的快捷键：</p> <table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 13.5pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 426.1pt; padding-right: 5.4pt; height: 13.5pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="568" colspan="2" nowrap> <p style="text-align: center" class="MsoNormal" align="center"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">键盘</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 1"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+T</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">打开一个新的</span><span lang="EN-US">tab</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 2"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+shift+T</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">打开刚刚关闭的</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">。能记忆多个。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 3"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span lang="EN-US">/</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span lang="EN-US">quick find</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，轻量级的</span><span class="SpellE"><span lang="EN-US">ctrl+F</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，好处是按键更方便，且</span><span lang="EN-US">find</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">栏会自动消失不用费事去关。缺点是没有</span><span lang="EN-US">highlight all</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">和大小写忽略选项。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 4"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span lang="EN-US">F7</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">光标在网页中移动，用键盘来选择文本；</span></p> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">还可以记住光标在网页中的位置。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 5"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+L</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">到地址栏，键位比</span><span class="SpellE"><span lang="EN-US">alt+D</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">更方便</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 6"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+K</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">到搜索栏，键位比</span><span class="SpellE"><span lang="EN-US">ctrl+E</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">更方便</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 7"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">’</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">查找页面上的超链接，例如输入“快捷键”会找到文字中包含“快捷键”的超链接。找到后按回车可直接打开链接。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 8"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+shift+D</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">收藏所有打开的</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，会让你起一个文件夹名，然后把所有已打开的</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">都放进这个文件夹</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 9"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+G</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">要到下一处匹配的快捷键，上一处匹配是</span><span class="SpellE"><span lang="EN-US">ctrl+shift+G</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">。经常与</span><span class="SpellE"><span lang="EN-US">ctrl+F</span></span><span lang="EN-US">,/,</span><span class="GramE"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">’</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">这三个快捷键配合使用。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 10"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+S</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">保存网页，遗憾的是还不支持</span><span class="SpellE"><span lang="EN-US">mht</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">格式</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 11"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+U</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">查看代码，对开发者比较有用</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 12"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span lang="EN-US">ctrl+0</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">缩放重置为</span><span lang="EN-US">100%</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，放大/缩小是</span><span lang="EN-US">ctrl+/-</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 13"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+H</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">查看历史记录</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 14"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+Enter</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">输入地址的时候自动补充</span><span lang="EN-US">http://www.</span><span style="font-family: 宋体; color: #4b4b4b; mso-ascii-font-family: verdana; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: verdana">和</span><span style="font-family: 'Verdana','sans-serif'; color: #4b4b4b" lang="EN-US">.com</span><span style="font-family: 宋体; color: #4b4b4b; mso-ascii-font-family: verdana; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: verdana">。例如在地址栏输入</span><span class="SpellE"><span style="font-family: 'Verdana','sans-serif'; color: #4b4b4b" lang="EN-US">google</span></span><span style="font-family: 宋体; color: #4b4b4b; mso-ascii-font-family: verdana; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: verdana">，按下之后就补充成为</span><span style="font-family: 'Verdana','sans-serif'; color: #4b4b4b" lang="EN-US"><a href="http://www.google.com">http://www.google.com</a></span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 15"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+PageUp</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">前一个</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，比</span><span class="SpellE"><span lang="EN-US">ctrl+shift+Tab</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">舒服。下一个</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">是</span><span class="SpellE"><span lang="EN-US">ctrl+PageDown</span></span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 16"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span lang="EN-US">ctrl+9</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">最后一个</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，比第</span><span lang="EN-US">9</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">个</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">好多了</span><span lang="EN-US">:)</span></p> <p class="MsoNormal"><span lang="EN-US">Firefox的一个插件Tab Mix Plus支持多行Tab，有了这个快捷键，同时打开好多个tab也不是太难管理。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 17"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+R</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">刷新网页，比</span><span lang="EN-US">F5</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">方便，记成</span><span lang="EN-US">Reload也很</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span class="GramE">酷</span>。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 18"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+J</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">打开已下载的文件列表（用浏览器下载的）</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 19"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+shift+P</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span lang="EN-US">Private browsing</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 20"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+shift+Del</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span lang="EN-US">Delete history</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 21"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span lang="EN-US">Del</span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">删除地址<span class="GramE">栏当前</span>选中的自动补全建议，可用方向键移动到要<span class="GramE">删</span>的建议条目上删除。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 22"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">ctrl+I</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span lang="EN-US">open bookmarks</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 23"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 90.45pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="121" nowrap> <p class="MsoNormal"><span class="SpellE"><span lang="EN-US">alt+DownArrow</span></span></p></td> <td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 5.4pt; width: 335.65pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" valign="top" width="448" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">换搜索引擎，非常好用！一些著名网站，例如</span><span lang="EN-US">Wiki</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">、淘宝、</span><span lang="EN-US">MSDN</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">应有尽有，按下</span><span class="SpellE"><span lang="EN-US">alt+DownArrow</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">之后，只要按首字母就可直接找过去，所以搜索引擎最好是英文开头的。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 24"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 426.1pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="568" colspan="2" nowrap> <p style="text-align: center" class="MsoNormal" align="center"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">鼠标</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 25"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 426.1pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="568" colspan="2" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">在标签栏上（也就是标签那一行）的空白处双击，也能打开一个新的</span><span lang="EN-US">tab</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，比找那个加号按钮更方便。</span></p></td></tr> <tr style="height: 13.5pt; mso-yfti-irow: 26; mso-yfti-lastrow: yes"> <td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; padding-left: 5.4pt; width: 426.1pt; padding-right: 5.4pt; height: 13.5pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" valign="top" width="568" colspan="2" nowrap> <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">页面中的任何东西，选择之后都可以拖动。选中一段文字，直接拖进搜索<span class="GramE">栏非常</span>方便。</span></p></td></tr></tbody></table><img src="http://www.cnblogs.com/dc10101/aggbug/1657399.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2010/01/27/1657399.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2010/01/27/1657399.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>WPF Single Instance workaround</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/24/1609146.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Mon, 23 Nov 2009 18:24:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/24/1609146.html</guid><description><![CDATA[<p>阅读: 41 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-24 02:24 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609146.html" target="_blank">原文链接</a></p><p>WPF本身并没有内置的单体模式支持(以后的版本会支持)，而WindowsFormsApplicationBase类中有对单体模式的支持（全名是Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase），所以我们用WindowsFormsApplicationBase做一个wrapper就可以实现单体模式了。 <br>实现单体有三个知识点需要了解：  <p>(*) The IsSingleInstance property enables a single-instance application. You set this property<br>to true in the constructor.<br>(*) The OnStartup() method is triggered when the application starts. You override this<br>method and create the WPF application object at this point.<br>(*) The OnStartupNextInstance() method is triggered when another instance of the application<br>starts up.  <p>另外在实现的时候需要注意：  <p>(*) 需要添加Microsoft.VisualBasic.dll的程序集引用  <p>(*) the application needs to start with a traditional Main() method, rather than an App.xaml file.  <p><strong>代码实现</strong></p> <p>添加一个新的文件，例如名叫Startup.cs，在里面添加如下代码： </p> <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">namespace</span><span style="color: #000000"> 你的命名空间<br>{<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000"> Startup<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [STAThread]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000"> Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[] args)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SingleInstanceApplicationWrapper wrapper </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000"> SingleInstanceApplicationWrapper();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wrapper.Run(args);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; } <br><br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000"> SingleInstanceApplicationWrapper :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">private</span><span style="color: #000000"> App app; </span><span style="color: #008000">//</span><span style="color: #008000"> 这才是真正的WPF Application </span><span style="color: #008000"><br></span><span style="color: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000"> SingleInstanceApplicationWrapper()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">this</span><span style="color: #000000">.IsSingleInstance </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000"> 第一次打开调这个方法</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000"> OnStartup(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft.VisualBasic.ApplicationServices.StartupEventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000"> App();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.Run(); <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000"> 再次打开调这个方法</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000"> OnStartupNextInstance(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000"> 当用户试图再次打开这个程序的时候</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(</span><span style="color: #800000">"</span><span style="color: #800000">您正在运行该程序</span><span style="color: #800000">"</span><span style="color: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; } <br><br>&nbsp;&nbsp;&nbsp; </span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br>&nbsp;&nbsp;&nbsp; </span><span style="color: #808080">///</span><span style="color: #008000"> Interaction logic for App.xaml<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">partial</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000"> App : Application<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; }<br>} </span></div> <p>&nbsp; <p>注意：</p> <p>你刚开始建的项目类型可能是WPF，在项目的属性里，application标签下有个Startup Object，一开始默认应该是“你的namespace.App”，除此之外就只有Not Set了，没别的可选。是因为Main函数才是程序的入口，VS会根据Main函数去搜寻哪些可以作为Startup Object。但我们查看App这个类的代码会发现，默认情况下里面并没有Main函数，这是怎么回事呢？原来VS在编译时会结合xaml自动把代码补充完整。xaml里面的x:Class="你的namespace.App”，其中"你的namespace.App”会作为可选的Startup Object出现。<br>当在别的类里面新加入了Main函数，就会把这个类也列在Startup Object的可选列表中（有时候可能要重启VS才能在Startup Object里看到新的项）。 针对上面的例子（文件名是Startup.cs）则把“命名空间.Startup”作为Startup Object.</p> <p>&nbsp;</p> <p><strong>总结</strong></p> <p>以上实现的是真正的single instance，而不是仅仅通过查找有没有相同的进程名来查看程序是否已经启动。用查看相同进程名的方法实现single instance很不可靠。设想：如果有一个恶意程序，每秒查看一下所有的进程，看其中是否有a.exe（假如这恰好是你的程序名）如果没有，则启动一个a.exe，这个a.exe哪怕什么都不干，就为了在哪里占用这个进程名。那么你如果用查看相同进程名来实现single instance的话，除非在一秒钟之内杀死a.exe进程并启动你自己的a.exe，否则可能永远都启动不了你自己的a.exe。当然了，如果这个恶意程序执行的是：定期查看有没有这个进程，如果有则立即杀死，那就更麻烦了。</p><img src="http://www.cnblogs.com/dc10101/aggbug/1609146.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609146.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609146.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Important WPF Application Event</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/24/1609145.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Mon, 23 Nov 2009 18:18:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/24/1609145.html</guid><description><![CDATA[<p>阅读: 34 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-24 02:18 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609145.html" target="_blank">原文链接</a></p><h1>SessionEnding</h1> <p>By default, an application shuts down when the Windows session ends, which occurs when a user logs off or shuts down.  <p>You can detect when a session ends by handling the SessionEnding event. If an application needs to prevent the session from ending, the <a href="http://www.cnblogs.com/dc10101/admin/ms-help://ms.msdnqtr.v90.en/4feab0ad-c1e6-4620-af31-0571408bed69.htm" target="_blank">SessionEndingCancelEventArgs</a> argument that is passed to the event handler exposes the Cancel that you set to true (the default value is false).  <p><strong>注意SessionEnding的适用范围：</strong>  <p>SessionEnding is not raised by console applications or XAML browser applications (XBAPs) .  <p>SessionEnding is raised only on the thread that creates the <a href="http://www.cnblogs.com/dc10101/admin/ms-help://MS.MSDNQTR.v90.en/fxref_presentationframework/html/e4519ccf-f902-057b-70ce-dca64b3a8c17.htm" target="_blank">Application</a> object.  <p>例子：<br>在退出windows session的时候弹出对话框让用户选择是否退出。<br></p> <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">partial</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000"> App : Application<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">void</span><span style="color: #000000"> App_SessionEnding(</span><span style="color: #0000ff">object</span><span style="color: #000000"> sender, SessionEndingCancelEventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000"> Ask the user if they want to allow the session to end</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">string</span><span style="color: #000000"> msg </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">.Format(</span><span style="color: #800000">"</span><span style="color: #800000">{0}. End session?</span><span style="color: #800000">"</span><span style="color: #000000">, e.ReasonSessionEnding);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBoxResult result </span><span style="color: #000000">=</span><span style="color: #000000"> MessageBox.Show(msg, </span><span style="color: #800000">"</span><span style="color: #800000">Session Ending</span><span style="color: #800000">"</span><span style="color: #000000">, MessageBoxButton.YesNo); <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000">//</span><span style="color: #008000"> End session, if specified</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (result </span><span style="color: #000000">==</span><span style="color: #000000"> MessageBoxResult.No)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.Cancel </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br></span></div> <p>&nbsp; <p>然后在XAML里配置，让上面的方法与SessionEnding Event相关联。  <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">Application </span><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">="LearnWPF.App"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml/presentation%22<br>&nbsp;&nbsp;&nbsp; xmlns:x="</span><span style="color: #ff0000">http://schemas.microsoft.com/winfx/2006/xaml%22<br>&nbsp;&nbsp;&nbsp; StartupUri</span><span style="color: #0000ff">="Window1.xaml"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; SessionEnding</span><span style="color: #0000ff">="App_SessionEnding"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br><br></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Application</span><span style="color: #0000ff">&gt;</span></div> <p>&nbsp; <p>&nbsp;</p> <h1>DispatcherUnhandledException</h1> <p>Occurs when an unhandled exception occurs anywhere in your application (on the main application thread). <br>By responding to this event, you can log critical errors.</p> <p>You can even choose to neutralize the exception and continue running your application by setting the<br>DispatcherUnhandledExceptionEventArgs.Handled property to true.</p> <p>指定event handler的方法还是一样，先写好方法：</p> <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000"> App_DispatcherUnhandledException(</span><span style="color: #0000ff">object</span><span style="color: #000000"> sender, DispatcherUnhandledExceptionEventArgs e)<br>{<br>&nbsp;&nbsp;&nbsp; MessageBox.Show(</span><span style="color: #800000">"</span><span style="color: #800000">An unhandled </span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"> e.Exception.GetType().ToString() </span><span style="color: #000000">+</span><span style="color: #000000"><br>&nbsp;&nbsp;&nbsp; </span><span style="color: #800000">"</span><span style="color: #800000"> exception was caught and ignored.</span><span style="color: #800000">"</span><span style="color: #000000">);<br>&nbsp;&nbsp;&nbsp; e.Handled </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000"> 把该异常设置为已处理，以防止程序因此退出</span><span style="color: #008000"><br></span><span style="color: #000000">}</span></div> <p><br>再编辑XAML:</p> <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">Application </span><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">="PreventSessionEnd.App"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; xmlns:x</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; StartupUri</span><span style="color: #0000ff">="Window1.xaml"</span><span style="color: #ff0000"><br>&nbsp;&nbsp;&nbsp; DispatcherUnhandledException</span><span style="color: #0000ff">="App_DispatcherUnhandledException"</span><span style="color: #ff0000"><br></span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Application</span><span style="color: #0000ff">&gt;</span></div> <p>&nbsp;</p> <h1>用override的方式来指定event handler<br></h1> <p>重载哪个方法？很简单，event叫什么名字，在前面加个On就是了。例如OnStartup，OnSessionEnding。只有DispatcherExceptionUnhandled事件是个例外，没有OnDispatcherExceptionUnhandled方法，只有像上文那样在XAML中明确写出event handler了。</p> <p>&nbsp;</p> <div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">partial</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000"> App : Application<br>{<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000"> unsavedData </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000"> UnsavedData<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">get</span><span style="color: #000000"> { </span><span style="color: #0000ff">return</span><span style="color: #000000"> unsavedData; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">set</span><span style="color: #000000"> { unsavedData </span><span style="color: #000000">=</span><span style="color: #000000"> value; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000"> OnStartup(StartupEventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">base</span><span style="color: #000000">.OnStartup(e); </span><span style="color: #008000">//</span><span style="color: #008000"> call base first</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UnsavedData </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000"> OnSessionEnding(SessionEndingCancelEventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">base</span><span style="color: #000000">.OnSessionEnding(e); </span><span style="color: #008000">//</span><span style="color: #008000"> call base first</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">if</span><span style="color: #000000"> (UnsavedData)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.Cancel </span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #800000">"</span><span style="color: #800000">The application attempted to be closed as a result of </span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.ReasonSessionEnding.ToString() </span><span style="color: #000000">+</span><span style="color: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #800000">"</span><span style="color: #800000">. This is not allowed, as you have unsaved data.</span><span style="color: #800000">"</span><span style="color: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>} </span></div><img src="http://www.cnblogs.com/dc10101/aggbug/1609145.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609145.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/24/1609145.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>WPF Application Shutdown Mode</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/23/1608657.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Mon, 23 Nov 2009 04:59:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/23/1608657.html</guid><description><![CDATA[<p>阅读: 22 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-23 12:59 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/23/1608657.html" target="_blank">原文链接</a></p><p>&nbsp;</p>
<p>有三种shutdown mode</p>
<table border="1" cellpadding="0" width="752">
<tr>
<td valign="top" width="25%">
<p align="center"><strong>Member name</strong></p></td>
<td valign="top" width="564">
<p align="center"><strong>Description</strong></p></td></tr>
<tr>
<td valign="top" width="25%">
<p><strong>OnLastWindowClose</strong></p></td>
<td valign="top" width="564">
<p>An application shuts down when either the last window closes, or <a href="http://www.cnblogs.com/dc10101/admin/ms-help://MS.MSDNQTR.v90.en/fxref_presentationframework/html/27b9036c-0a38-4165-194d-f02bdebeea42.htm" target="_blank">Shutdown</a> is called.</p></td></tr>
<tr>
<td valign="top" width="25%">
<p><strong>OnMainWindowClose</strong></p></td>
<td valign="top" width="564">
<p>An application shuts down when either the main window closes, or <a href="http://www.cnblogs.com/dc10101/admin/ms-help://MS.MSDNQTR.v90.en/fxref_presentationframework/html/27b9036c-0a38-4165-194d-f02bdebeea42.htm" target="_blank">Shutdown</a> is called.</p></td></tr>
<tr>
<td valign="top" width="25%">
<p><strong>OnExplicitShutdown</strong></p></td>
<td valign="top" width="564">
<p>An application shuts down only when <a href="http://www.cnblogs.com/dc10101/admin/ms-help://MS.MSDNQTR.v90.en/fxref_presentationframework/html/27b9036c-0a38-4165-194d-f02bdebeea42.htm" target="_blank">Shutdown</a> is called.</p></td></tr></table>
<p><br />其中OnMainWindowClose这个挺有用，但首先要知道如何指定MainWindow。</p>
<p><strong>指定MainWindow的两种途径：</strong></p>
<p>1. 在代码中指定</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br /></span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;Interaction&nbsp;logic&nbsp;for&nbsp;App.xaml<br /></span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;App()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Window&nbsp;oldMainWindow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.MainWindow;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Get&nbsp;main&nbsp;window&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;Window&nbsp;newMainWindow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Window1();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.MainWindow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Window();</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Set&nbsp;mainwindow</span><span style="color: #008000"><br /></span><span style="color: #000000">}&nbsp;<br /></span></div>
<p>&nbsp;
<p>2. 在XAML中指定<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">Application&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span><span style="color: #ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:x</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml"</span><span style="color: #ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;StartupUri</span><span style="color: #0000ff">="StartupWindow.xaml"</span><span style="color: #ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Application.MainWindow</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">NavigationWindow&nbsp;</span><span style="color: #ff0000">Source</span><span style="color: #0000ff">="MainPage.xaml"</span><span style="color: #ff0000">&nbsp;Visibility</span><span style="color: #0000ff">="Visible"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">NavigationWindow</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Application.MainWindow</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Application</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p><strong>配置Shutdown Mode<br /></strong>这里我们选择OnMainWindowClose：</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">Application&nbsp;</span><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">="TestApplication.App"</span><span style="color: #ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/winfx/2006/xaml/presentation%22<br />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:x="</span><span style="color: #ff0000">http://schemas.microsoft.com/winfx/2006/xaml%22<br />&nbsp;&nbsp;&nbsp;&nbsp;StartupUri</span><span style="color: #0000ff">="Window1.xaml"</span><span style="color: #ff0000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ShutdownMode</span><span style="color: #0000ff">="OnMainWindowClose"</span><span style="color: #ff0000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Application</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p><img src="http://www.cnblogs.com/dc10101/aggbug/1608657.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/23/1608657.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/23/1608657.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>快捷键查缺补漏</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/19/1605759.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Wed, 18 Nov 2009 17:49:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/19/1605759.html</guid><description><![CDATA[<p>阅读: 14 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-19 01:49 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/19/1605759.html" target="_blank">原文链接</a></p><p>以前我所不知道而且还很有用的：<br></p> <table border="1" cellspacing="0" cellpadding="2" width="493"> <tbody> <tr> <td valign="top" width="86"> <p align="center"><strong>按键</strong></p></td> <td valign="top" width="191"> <p align="center"><strong>上下文环境</strong></p></td> <td valign="top" width="214"> <p align="center"><strong>功能</strong></p></td></tr> <tr> <td valign="top" width="86">F2</td> <td valign="top" width="191">Windows exploer</td> <td valign="top" width="214">重命名</td></tr> <tr> <td valign="top" width="86">F10</td> <td valign="top" width="191">app</td> <td valign="top" width="214">菜单</td></tr> <tr> <td valign="top" width="86">Alt+Enter</td> <td valign="top" width="191">windows exploer</td> <td valign="top" width="214">查看属性</td></tr> <tr> <td valign="top" width="86">Alt+Enter</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">全屏，相当于F11</td></tr> <tr> <td valign="top" width="86">Ctrl+I</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">Favorite</td></tr> <tr> <td valign="top" width="86">Ctrl+H</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">History</td></tr> <tr> <td valign="top" width="86">Ctrl+J</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">Feed</td></tr> <tr> <td valign="top" width="86">Ctrl+T</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">新打开一个Tab</td></tr> <tr> <td valign="top" width="86">Ctrl+N</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">打开一个新window，并把当前页面复制到那个window</td></tr> <tr> <td valign="top" width="86">Ctrl+Q</td> <td valign="top" width="191">IE</td> <td valign="top" width="214">打开/关闭平铺tab<br>当打开的tab一多，就数不过来，不知道该用ctrl+哪个数字来导航了。平铺后数起来容易些。</td></tr></tbody></table><img src="http://www.cnblogs.com/dc10101/aggbug/1605759.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/19/1605759.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/19/1605759.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.NET Service Bus 调试</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/09/1599265.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Mon, 09 Nov 2009 12:18:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/09/1599265.html</guid><description><![CDATA[<p>阅读: 20 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-09 20:18 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/09/1599265.html" target="_blank">原文链接</a></p><h1>如果先关service再关client</h1>
<p>那么client的channel.Close()会报异常：</p>
<p>&#8220;The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.&#8221;</p>
<p>&nbsp;</p>
<h1>如果还未启动service就打开client</h1>
<p>则client的channel.Open()会报异常：</p>
<p>&#8220;The endpoint was not found. Please ensure that you can connect to the internet using HTTP port 80 and TCP port 808.&#8221;</p>
<p>&nbsp;</p>
<h1>Client与Service两边的属性的Namespace不一致</h1>
<p>例如：</p>
<p>Client端：</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[ServiceContract(Name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">IEchoContract</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;Namespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">http://samples.microsoft.com/ServiceModel/Relay/</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IEchoContract<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[OperationContract]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;Echo(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;text);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span></div>
<p><br />Server端： </p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;注意，最后多了一个Echo</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[ServiceContract(Name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">IEchoContract</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;Namespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">http://samples.microsoft.com/ServiceModel/Relay/Echo</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IEchoContract<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[OperationContract]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;Echo(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;text);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span></div>
<p>在Client执行方法channel.Echo(input)的时候会报异常： 
<p>"The message with Action '<a href="http://samples.microsoft.com/ServiceModel/Relay/IEchoContract/Echo'" target="_blank">http://samples.microsoft.com/ServiceModel/Relay/IEchoContract/Echo'</a> cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.&nbsp; Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None)."</p>
<p>&nbsp;</p>
<h1>避免Contract和Behavior的paste&amp;copy error</h1>
<p>如果一个该用ServiceBehavior的地方用了ServiceContract，例如：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">//</span><span style="color: #008000">should&nbsp;be&nbsp;[ServiceBehavior(Name&nbsp;=&nbsp;"EchoService",&nbsp;Namespace&nbsp;=&nbsp;</span><span style="color: #008000; text-decoration: underline">http://samples.microsoft.com/ServiceModel/Relay/</span><span style="color: #008000">)]</span><span style="color: #008000"><br /></span><span style="color: #000000">[ServiceContract(Name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">IEchoContract</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;Namespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;http:</span><span style="color: #008000">//</span><span style="color: #008000">samples.microsoft.com/ServiceModel/Relay/)]</span><span style="color: #008000"><br /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;EchoService&nbsp;:&nbsp;IEchoContract<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;Echo(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;text)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Echoing:&nbsp;{0}</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;text);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;text;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div>
<p>则在new一个host的时候，ServiceHost host = new ServiceHost(typeof(EchoService), address); // 会抛出异常<br />异常信息：</p>
<p>"The service class of type Microsoft.ServiceBus.Samples.EchoService both defines a ServiceContract and inherits a ServiceContract from type Microsoft.ServiceBus.Samples.IEchoContract. Contract inheritance can only be used among interface types.&nbsp; If a class is marked with ServiceContractAttribute, it must be the only type in the hierarchy with ServiceContractAttribute.&nbsp; Consider moving the ServiceContractAttribute on type Microsoft.ServiceBus.Samples.IEchoContract to a separate interface that type Microsoft.ServiceBus.Samples.IEchoContract implements."</p><img src="http://www.cnblogs.com/dc10101/aggbug/1599265.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/09/1599265.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/09/1599265.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Service Bus</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/05/1596317.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Wed, 04 Nov 2009 16:55:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/05/1596317.html</guid><description><![CDATA[<p>阅读: 22 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-05 00:55 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/05/1596317.html" target="_blank">原文链接</a></p><p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/ServiceBus_1158F/04d67ea2-b67f-4609-9044-7c2fbd488a53_2.png" target="_blank"><img style="display: inline" title="Service bus message flow" alt="Service bus message flow" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/ServiceBus_1158F/04d67ea2-b67f-4609-9044-7c2fbd488a53_thumb.png" width="638" height="408" /></a> </p>
<p>The<strong> Service Bus</strong> allows a Windows Communication Foundation-based (WCF) application to listen at a public network address, even if the application is located behind a NAT or network firewall.</p>
<p>Another core part of the solution is the <strong>Access Control</strong> service, a publicly accessible identity and authentication management service. The <strong>Access Control</strong> service is based on a public <strong>Security Token Service</strong> (<strong>STS</strong>). The <strong>STS</strong> is in charge of authenticating and authorizing both the client and the service that want to use the<strong> Service Bus</strong>.</p>
<p>&nbsp;</p>
<h1>Credential Type</h1>
<p>The service has to authenticate to the Access Control Service to be able to use the <strong>Service Bus</strong>. The <strong>transportClientEndpointBehavior </strong>allows you to specify the Credential type to be used to authenticate the service.</p><pre><div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">system.serviceModel</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp; </span><span style="color: #0000ff">&lt;</span><span style="color: #800000">behaviors</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">endpointBehaviors</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">behavior&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="cardSpaceClientCredentials"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">transportClientEndpointBehavior&nbsp;</span><span style="color: #ff0000">credentialType</span><span style="color: #0000ff">="CardSpace"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">behavior</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">endpointBehaviors</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">behaviors</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bindings</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bindings</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">services</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">services</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">system.serviceModel</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif"  alt="" /></span></div>&nbsp;</pre>
<table border="1" cellspacing="0" cellpadding="2" width="737">
<tr>
<td valign="top" width="177">UserNamePassword </td>
<td valign="top" width="558"><strong></strong>is an alternative for applications with non-interactive requirements that allows you to set a username and password to authenticate to the identity service</td></tr>
<tr>
<td valign="top" width="177">X509Certificate </td>
<td valign="top" width="558">allows you to use an X509 certificate </td></tr>
<tr>
<td valign="top" width="177">CardSpace</td>
<td valign="top" width="558">In this case, using CardSpace, the Windows Cardspace selector is launched, the user selects an information card and a token is sent to the service. </td></tr>
<tr>
<td valign="top" width="177">AutomaticRenewal </td>
<td valign="top" width="558">allows you to use CardSpace to authenticate but in addition it will automatically retrieve new tokens from the STS before the original token has expired. This is especially useful in scenarios where an application needs to run indefinitely without prompting for user credentials upon token expiration, such as with a service.</td></tr>
<tr>
<td valign="top" width="177">FederationViaCardSpace </td>
<td valign="top" width="558">allows you to use CardSpace to authenticate but enables you to control which claims and/or issuer are required for a token issuer.</td></tr></table><img src="http://www.cnblogs.com/dc10101/aggbug/1596317.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/05/1596317.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/05/1596317.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>WPF Layout</title><link>http://www.cnblogs.com/dc10101/archive/2009/11/04/1596171.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Wed, 04 Nov 2009 11:39:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/11/04/1596171.html</guid><description><![CDATA[<p>阅读: 51 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-11-04 19:39 <a href="http://www.cnblogs.com/dc10101/archive/2009/11/04/1596171.html" target="_blank">原文链接</a></p><h1>WPF Layout Philosophy</h1>
<p>(*)<strong> Elements (like controls) should not be explicitly sized.</strong> Instead, they grow to fit their<br />content. For example, a button expands as you add more text. You can limit controls to<br />acceptable sizes by setting a maximum and minimum size.</p>
<p>(*)<strong> Elements do not indicate their position with screen coordinates.</strong> Instead, they are<br />arranged by their container based on their size, order, and (optionally) other information<br />that&#8217;s specific to the layout container. If you need to add whitespace between<br />elements, you use theMargin property.</p>
<p>(*) <strong>Layout containers &#8220;share&#8221; the available space among their children.</strong> They attempt to<br />give each element its preferred size (based on its content) if the space is available. They<br />can also distribute extra space to one or more children.</p>
<p>(*) <strong>Layout containers can be nested.</strong> A typical user interface begins with the Grid, WPF&#8217;s<br />most capable container, and contains other layout containers that arrange smaller<br />groups of elements, such as captioned text boxes, items in a list, icons on a toolbar, a<br />column of buttons, and so on.</p>
<p><br /><strong>控件大小和位置是被决定的</strong> 
<p>An element can&#8217;t always get its preferred size&#8212;sometimes the container isn&#8217;t large enough to accommodate it. <br />In this case, the container must truncate the offending element to fit the visible area. <br />As you&#8217;ll see, you can often avoid this situation by setting a minimum window size. </p>
<p>&nbsp;</p>
<h1>各种Panel</h1>
<p>The key point to understand with panels is that, as containers, they are responsible for the positioning (and in some cases, the sizing) of all the controls placed within. This means that the individual child controls themselves don&#8217;t need to be aware of the specific layout system they are participating in&#8212;which greatly simplifies the code and architecture.</p>
<table border="1" cellspacing="0" cellpadding="0" width="652">
<tr>
<td width="102">
<p><strong>StackPanel</strong></p></td>
<td valign="top" width="548">
<p>Places elements in a horizontal or vertical stack. This layout container is typically used for small sections of a larger, more complex window.</p></td></tr>
<tr>
<td width="102">
<p><strong>WrapPanel</strong></p></td>
<td valign="top" width="548">
<p>Places elements in a series of wrapped lines. In horizontal orientation, the WrapPanel lays items out in a row from left to right and then onto subsequent lines. In vertical orientation, the WrapPanel lays out items in a top-to-bottom column and then uses additional columns to fit the remaining items.</p></td></tr>
<tr>
<td width="102">
<p><strong>DockPanel</strong></p></td>
<td valign="top" width="548">
<p>Aligns elements against an entire edge of the container.<br />注意，DockPanel有个很重要的属性FillLastChild，默认是true，即让最后一个子元素充满DockPanel的剩余地方</p></td></tr>
<tr>
<td width="102">
<p><strong>Grid</strong></p></td>
<td valign="top" width="548">
<p>Arranges elements in rows and columns according to an invisible table. This is one of the most flexible and commonly used layout containers.</p>
<p>In fact, the Grid is so useful that when you add a new XAML document for a window in Visual Studio, it automatically adds the Grid tags as the first-level container.</p></td></tr>
<tr>
<td width="102">
<p><strong>UniformGrid</strong></p></td>
<td valign="top" width="548">
<p>Places elements in an invisible table but forces all cells to have the same size. 
<p>This layout container is used infrequently.</p></td></tr>
<tr>
<td width="102">
<p><strong>Canvas</strong></p></td>
<td valign="top" width="548">
<p>Allows elements to be positioned absolutely using fixed coordinates. This layout container is the most similar to traditional Windows Forms, but it doesn&#8217;t provide anchoring or docking features. </p></td></tr></table>
<p>&nbsp;</p>
<h1>Panel会给放置在里面的children附加attached property</h1>
<p>Different layout containers can provide attached properties to their children. For example, all the children of <br />a Grid object gain Row and Column properties that allow them to choose the cell where they&#8217;re placed. 
<h1>&nbsp;</h1>
<h1>图解Margin</h1>
<p>Margin四元组对应着leftMargin，TopMargin, RightMargin, BottomMargin，而不是坐标。</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/MarginExplanation_2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="MarginExplanation" border="0" alt="MarginExplanation" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/MarginExplanation_thumb.png" width="503" height="412" /></a></p>
<h1>&nbsp;</h1>
<h1>Grid的大小设置</h1>
<p>先赞一个，Grid真是太好用了。有三种方法来设置单元格大小，也就是column的宽度和row的长度，<br /><strong></strong></p>
<p><strong>按比例</strong></p>
<p>在Grid里按比例缩放，用*来说明，*表示单位一，*前面的数字表示有多少个单位一。</p>
<p>&lt;RowDefinition Height="45*" /&gt;<br />&lt;RowDefinition Height="147*" /&gt;<br />无论怎么缩放，第一行的高度都是第二行的45/147。 
<p>如果只有一个*，那么1可以省略：<br />&lt;RowDefinition Height="*" /&gt;等价于&lt;RowDefinition Height="1*" /&gt;<br /><strong></strong></p>
<p><strong>固定</strong><br />如果只有数字不加*，就和fixxed size没有两样了。</p>
<p>&nbsp;</p>
<p><strong>按需<br /></strong>&lt;ColumnDefinition Width="Auto"/&gt;<br />按内容分配，需要多少就给多少少，不少给，也不多给。</p>
<p>&nbsp;</p>
<h1>控件跨多单元格</h1>
<p>用一个例子说明：先定义一个6*6的Grid，每个单元格大小相同。然后往里放三个按钮： 
<p>注意它们的初始位置和Span大小。 
<p>&lt;Button Grid.Row="0" Grid.Column="0" Grid.RowSpan="6" Grid.ColumnSpan="6" Background="Azure"/&gt;<br />&lt;Button Grid.Row="1" Grid.Column="1" Grid.RowSpan="4" Grid.ColumnSpan="4" Background="LightSteelBlue"/&gt;<br />&lt;Button Grid.Row="2" Grid.Column="2" Grid.RowSpan="2" Grid.ColumnSpan="2" Background="DarkSlateBlue"/&gt; 
<p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/image_2.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/image_thumb.png" width="295" height="294" /></a> 可见，控件的层叠上下关系和他们在XAML中声明的先后顺序有关。</p>
<h1>&nbsp;</h1>
<h1>GridSpliter动态调整划分后的单元格大小</h1>
<p>GridSpliter必须放在Grid里面，并让它独占Grid中的一行或一列。<br />对水平和竖直的GridSpliter，都应设置至少5个属性：</p>
<table border="1" cellspacing="0" cellpadding="2" width="669">
<tr>
<td valign="top" width="162">Horizontal splitter<br />（横线）</td>
<td valign="top" width="505">set VerticalAlignment to Center;<br />set HorizontalAlignment to Strech;<br />set Height, Grid.Row, Grid.ColumnSpan</td></tr>
<tr>
<td valign="top" width="162">Vertical splitter<br />（竖线）</td>
<td valign="top" width="505">set HorizontalAlignment to Center;<br />set VerticalAlignment to Strech;<br />set Width, Grid.Column, Grid.RowSpan</td></tr></table>
<p>有一点需要注意：应该把GridSpliter理解成一条直线而非线段。无论Grid.ColumnSpan或Grid.RowSpan设置成多少，拖动spliter bar时都会改变整个Grid的比例，即便那部分Grid没有包含在spliter的span里。所以为了图省事，尽量把Span设得大一点好了，比如99。<br />另外，在一个Grid里只能有水平或竖直中的一种，不能既有水平又有竖直。如果要做出类似效果，可以用Grid嵌套与Shared Size Group相结合的方式。 
<h1>&nbsp;</h1>
<h1>Shared Size Groups</h1>
<p>A Grid contains a collection of rows and columns, which are sized explicitly, proportionately, or based on <br />the size of their children. There&#8217;s one other way to size a row or a column&#8212;to match the size of another row or column. The goal of shared size groups is to keep separate portions of your user interface consistent. 
<p><strong>用法：</strong> 
<p>只要设置一个SharedSizeGroup属性就可以了，多个设置了同一个SharedSizeGroup值的控件会自动同步大小。 
<p>SharedSizeGroup的可见范围是一个Window，而不是整个Application，只有在同一个窗体之内才能共享大小。 
<p>例子： 
<p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/image_4.png" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/WPF_9679/image_thumb_1.png" width="303" height="306" /></a>&nbsp; 
<p>下面是这个可拖动窗体的代码： 
<p>看这段代码的时候请留意：<br />(*) 在Grid标签里：Grid.IsSharedSizeScope="True"必须设置，否则共享大小不起作用。<br />(*) &lt;ColumnDefinition Width="auto" SharedSizeGroup="Column1"/&gt;就是使用方法，<br />&nbsp;&nbsp;&nbsp;&nbsp; Column1是随便起的名字，width要设置成auto。<br />&nbsp;&nbsp;&nbsp;&nbsp; 设置成auto也即意味着里面要有内容，否则宽度为0。 
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid&nbsp;</span><span style="color: #ff0000">Grid.IsSharedSizeScope</span><span style="color: #0000ff">="True"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid.RowDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">RowDefinition&nbsp;</span><span style="color: #ff0000">Height</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">RowDefinition&nbsp;</span><span style="color: #ff0000">Height</span><span style="color: #0000ff">="Auto"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">RowDefinition&nbsp;</span><span style="color: #ff0000">Height</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid.RowDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid&nbsp;&nbsp;</span><span style="color: #ff0000">Name</span><span style="color: #0000ff">="grid1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid.ColumnDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="auto"</span><span style="color: #ff0000">&nbsp;SharedSizeGroup</span><span style="color: #0000ff">="Column1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="auto"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">放置spliter</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid.ColumnDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Label&nbsp;</span><span style="color: #ff0000">Grid.Column</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">aaaa</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Label</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">GridSplitter&nbsp;</span><span style="color: #ff0000">Grid.Column</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;VerticalAlignment</span><span style="color: #0000ff">="Stretch"</span><span style="color: #ff0000">&nbsp;HorizontalAlignment</span><span style="color: #0000ff">="Center"</span><span style="color: #ff0000">&nbsp;Width</span><span style="color: #0000ff">="5"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">GridSplitter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid&nbsp;&nbsp;</span><span style="color: #ff0000">Name</span><span style="color: #0000ff">="grid2"</span><span style="color: #ff0000">&nbsp;Grid.Row</span><span style="color: #0000ff">="2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Grid.ColumnDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="auto"</span><span style="color: #ff0000">&nbsp;SharedSizeGroup</span><span style="color: #0000ff">="Column1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="auto"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">放置spliter</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ColumnDefinition&nbsp;</span><span style="color: #ff0000">Width</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid.ColumnDefinitions</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">GridSplitter&nbsp;</span><span style="color: #ff0000">Grid.Column</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;VerticalAlignment</span><span style="color: #0000ff">="Stretch"</span><span style="color: #ff0000">&nbsp;HorizontalAlignment</span><span style="color: #0000ff">="Center"</span><span style="color: #ff0000">&nbsp;Width</span><span style="color: #0000ff">="5"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">GridSplitter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">GridSplitter&nbsp;</span><span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;VerticalAlignment</span><span style="color: #0000ff">="Center"</span><span style="color: #ff0000">&nbsp;HorizontalAlignment</span><span style="color: #0000ff">="Stretch"</span><span style="color: #ff0000">&nbsp;Height</span><span style="color: #0000ff">="5"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Grid</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
<p>&nbsp;</p>
<h1>Canvas &#8212;&#8212;Coordinate-Based Layout</h1>
<p>To position an element on the Canvas, you set the attached Canvas.Left and Canvas.Top properties. 
<p>Alternatively, you can use Canvas.Right instead of Canvas.Left to space an element from the right<br />edge of the Canvas, and Canvas.Bottom instead of Canvas.Top. 
<p><strong>Z-Order</strong><br />Ordinarily, all the elements you add have the same ZIndex&#8212;0. When elements have the<br />same ZIndex, they&#8217;re displayed in the same order that they exist in Canvas.Children collection.<br />Higher ZIndex elements always appear over lower ZIndex elements.You can set the ZIndex using<br />any positive or negative integer.</p><img src="http://www.cnblogs.com/dc10101/aggbug/1596171.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/04/1596171.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/11/04/1596171.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>VS2008 各种杂七杂八技巧</title><link>http://www.cnblogs.com/dc10101/archive/2009/10/28/1591281.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Wed, 28 Oct 2009 05:38:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/10/28/1591281.html</guid><description><![CDATA[<p>阅读: 38 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-10-28 13:38 <a href="http://www.cnblogs.com/dc10101/archive/2009/10/28/1591281.html" target="_blank">原文链接</a></p><p>(*) 窗口的摆放<br>在一个窗口上点右键，有floating, dockable, tabbed document这三种摆放方式。<br>floating: 浮在最上，任何地方。<br>dockable: 浮在最上，任何地方，且可以锚定在一侧。有了dockable之后其实floating就成鸡肋了。<br>tabbed document: 把窗口以tab的形式，和一般的源文件展示在一起。挺好用的一个功能。 <p>(*) 读代码的好方法<br>ctrl+W,C 打开Class view，类以及类的方法、属性等一目了然。<br>再ctrl+W,D打开Definition window，在class view中点到某个东西，都会在definition window中展示出定义来。而且definition window还是只读的，不会误操作改掉代码，底色还是灰的，保护眼睛。真是周到啊。 <p>(*) 自定义工具栏<br>在工具栏上点右键，会看到一个长长的列表，列表中每一项都是一个工具栏。勾选你想要看到的工具栏。建议把standard工具栏的快捷键都记住，这样就不必把工具栏摆出来占地方了。 <p>(*) 关于代码的outlining<br>最好用的只有两个：一个是collapse to definitions有意义地折叠，另一个是stop outlining完全打开。 <img src="http://www.cnblogs.com/dc10101/aggbug/1591281.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/10/28/1591281.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/10/28/1591281.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>使用MSDN社区资源</title><link>http://www.cnblogs.com/dc10101/archive/2009/10/27/1590894.html</link><dc:creator>董超</dc:creator><author>董超</author><pubDate>Tue, 27 Oct 2009 12:44:00 GMT</pubDate><guid>http://www.cnblogs.com/dc10101/archive/2009/10/27/1590894.html</guid><description><![CDATA[<p>阅读: 16 评论: 0 作者: <a href="http://www.cnblogs.com/dc10101/" target="_blank">董超</a> 发表于 2009-10-27 20:44 <a href="http://www.cnblogs.com/dc10101/archive/2009/10/27/1590894.html" target="_blank">原文链接</a></p><h1>(*) 提问</h1> <p>VS的Help菜单，MSDN Forum，点开之后会打开msdn，只要用Windows Live ID登陆可以直接发帖提问了。</p> <p>只要输入了标题，就会有出现已经有人问过的类似问题，非常友好：</p> <p>We've found questions similar to yours.</p> <p>&nbsp;</p> <p>而且会有该问题所在的位置：</p> <p><a href="http://msdn.microsoft.com/en-us/azure/cc947856.aspx">Windows Azure Platform Developer Center</a> &gt; <a href="http://social.msdn.microsoft.com/Forums/en-US/category/azure">Azure Forums</a> &gt; <a href="http://social.msdn.microsoft.com/Forums/en-US/netservices/threads">.NET Services</a> &gt; How do I smoke on the cloud?</p> <p>点击上面的链接即进入相应的论坛，例如我们点击<a href="http://social.msdn.microsoft.com/Forums/en-US/netservices/threads">.NET Services</a>, 就可以看到你所提的问题所在的位置：</p> <p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/33f9c463b89a_104A6/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/33f9c463b89a_104A6/image_thumb.png" width="502" height="239"></a> </p> <h1>(*) 搜索</h1> <p>打开MSDN后，点击Search按钮，便进入搜索框。可从三个方面设置过滤条件，缩小查找范围。</p> <p><a href="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/33f9c463b89a_104A6/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dc10101/WindowsLiveWriter/33f9c463b89a_104A6/image_thumb_1.png" width="363" height="163"></a></p> <img src="http://www.cnblogs.com/dc10101/aggbug/1590894.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/dc10101/archive/2009/10/27/1590894.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/dc10101/archive/2009/10/27/1590894.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/>· <a href="http://news.cnblogs.com/n/56850/" target="_blank">“谷姐”：披着“谷歌”羊皮的悲哀？</a><span style="color:gray">(2010-02-10 15:32)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>