填充我的博客侧边栏——Word 2007高级应用

填充我的博客侧边栏——Word 2007高级应用

 假设"我的博客"侧边栏的相关文件安置在My Blogs文件夹里,该文件夹的结构如下图所示:

  

  图  1

  虽然我们可以通过枚举My Blogs的子文件夹来填充cbxBlogs控件,然而我希望设计一个类来表示博客并且实现一定的数据绑定。回顾上一篇文章“创建我的博客侧边栏 ——Word 2007高级应用(二)”,"我的博客"侧边栏应该具备如下特性:

  

  

  

  它会在启动时读取My Blogs文件夹里的相关信息,并且填充 cbxBlogs控件;

  当我们在博客列表中选择某个博客时,它会通过RSS获取该博客最近发布的帖子,并且填充lbxRecentPosts控件;

  当我们在博客列表中选择某个博客时,它会读取该博客帖子草稿文件夹里的数据,并且填充lbxDrafts控件;

  当我们在博客列表中选择某个博客时,按下View Blog按钮将会在Internet Explorer中打开该博客的主页;

  当我们在最近帖子列表中选择某个帖子时,按下View Post按钮将会在Internet Explorer中打开该帖子的网页;

  当我们在草稿列表中选择某个草稿时,按下Open Draft按钮将会在新的Word 2007中打开该草稿。

  明确这些需求后,我们就可以着手写代码了:

  对于Code #01,以下几点是需要说明的:

   Post、Draft和Blog类都重写了ToString()方法,这是因为ComboBox和ListBox等控件会调用该方法并把返回的字符串用 作条目的显示,重写该方法是为了让条目得到正确的显示。当然,如果你结合DataSource和DisplayMember来使用,也可以不重写 ToString()方法。

  Blog.GetRecentPosts()方法里使用Argotic Syndication Framework来进行RSS信息处理,所以你需要下载并安装它,然后在项目中引用相关的类库和Argotic.Core.Rss命名空间。

  Blog.GetRecentPosts()方法里对RSS地址进行了假设,这个假设适用于博客园以及旗下其它网站,当然,你可以想出很多方法让它具备普遍适用性。

  Blog.GetRecentPosts()方法里使用NetworkInterface. GetIsNetworkAvailable()方法判断当前网络是否连通,如果连通则获取数据,否则返回空数组。

   Blog.GetDrafts()方法没有进行任何筛选,这里假设文件夹里面只包含.docx和/或.doc文件。由于这些文件将会用Word 2007打开,如果你可能往文件夹里放置Word 2007不能读取的文件,那么你最好为LINQ查询语句加入where来进行必要的过滤。

  在Blog.GetDrafts()方法里,我还假设My Blogs文件夹是放在"我的文档"里的,并且博客所在的文件夹名字和博客的名字一样,当然,这样我们就不能在博客的名字里面包含非法的路径字符了。

  我们可以让文件夹的名字和博客的名字相同,但却无法在这里包含博客的URL信息,而这又是很多操作的前提,于是我在My Blogs文件夹里放置一个Blogs.xml文件,里面包含了如下内容:

  有了这个文件,我们就可以顺利存取博客的URL信息了。另外,如果你希望让博客的名字不受路径的约束,即可以包含非法的路径字符,那么你可以为blog元素扩展一个directory属性用于存放路径,这样name属性就可以专门用于界面上的显示了。

  增值服务区

  你可以通过 Path. GetInvalidFileNameChars()或Path. GetInvalidPathChars()方法查看非法的路径字符。

  接下来就是把数据填充到"我的博客"侧边栏了,回到MyBlogsUserControl.cs,在构造函数里添加如下所示的代码:

  

  对于Code #02,以下几点是需要说明的:

  我们使用LINQ to XML获取Blogs.xml中博客的相关数据,并把这些数据绑定到博客列表上。

  我们获取blogs元素的defaultBlog属性的值,并用它来设置cbxBlogs.SelectedText属性,使得它所指定的默认博客成为当前所选定的博客。

   如果我们约定第一个blog元素就是默认博客,那么这里就不需要使用defaultBlog属性和设置SelectedText属性了,因为当我们把一 个数据源绑定到DataSource属性时,它会在完成绑定后把第一个条目设为当前选定项,当然,此时会引发 SelectedValueChanged(和其它相关的)事件。

  噢,别忘记cbxBlogs的SelectedValueChanged事件,下面是该事件的Event Handler:

  

  值得提醒的是,Blog.GetRecentPosts()方法所返回的数组的元素个数和对应博客的设置相关:

  

  图  2

  现在来看看运行效果:

  

  图  3

  下一章将为大家介绍任何利用Word 2007查看博客、最近帖子和存档草稿

时间: 2024-09-17 03:32:49

填充我的博客侧边栏——Word 2007高级应用的相关文章

创建我的博客侧边栏——Word 2007高级应用

创建我的博客侧边栏--Word 2007高级应用 我不清楚以往怎样才能做到这样,但现在有了VSTO,你可以把以往所学的Windows Forms的技巧都用上,实际上,这样一个侧边栏就是一个用户控件(User Control).现在,我们就来开发"我的博客"侧边栏.首先,在项目里添加一个名为MyBlogsUserControl的用户控件,接着在它上面拖 放下列控件: cbxBlogs:用于显示博客列表 btnViewBlog:在Internet Explorer中打开选定博客的主页 lb

打开关闭我的博客侧边栏——Word 2007高级应用7

打开关闭我的博客侧边栏--Word 2007高级应用(七) My Blogs按钮的实现主要有如下要求: Word 2007启动的时候,"我的博客"侧边栏会被加载但不显示. 当My Blogs按钮处于按下状态时,显示"我的博客"侧边栏:当My Blogs按钮处于释放状态时,隐藏"我的博客"侧边栏. 显示"我的博客"侧边栏的途径只有一个,就是通过My Blogs按钮,但隐藏它则有两个途径:通过My Blogs按钮或者位于它的右上角

添加/删除博客信息——Word 2007高级应用8

Manage Blogs按钮的其中一组重要功能是显示.储存和更改工作目录的当前位置,而这个位置是储存在配置中的,于是,我们得先构建好这个储存设施.打开项目的属 性窗口,切换到Settings页面,在里面添加WorkingDirectory项,并将其Type设置为string,Scope设置为User: 图 1 当用户第一次运行插件时,工作目录和WorkingDirectory项的值都没有就绪,需要在所有自定义插件代码运行之前创建工作目录,并把WorkingDirectory项的值初始化为该目录的

查看博客、最近帖子和存档草稿 ——Word 2007高级应用

查看博客.最近帖子和存档草稿 --Word 2007高级应用 由于查看博客和查看最近帖子这两项操作都是"外包"给Internet Explorer的,我们可以简单地调用System.Diagnostics.Process.Start()方法,并传入选定对象的Url属性的值: 对于存档草稿,我们可以使用Documents.Open()方法来打开,并传递选定存档草稿的Path属性的值: 需要说明的是,对于Documents.Open()方法来说,除了第一个参数,其它参数都是可选的,但由于C

博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)_javascript技巧

当一个页面内容很长的时候,侧边栏栏目可能显得太短,当窗口滑动到靠下的位置,则侧边即失去了展示内容的机会.很多新闻资讯类网站如新浪.网易.CSDN等,会在边栏的右下角以固定的小弹窗形式,以提供更多的内容展示方式,但这并不适合博客和web2.0风格的网站. 现在很多的独立博客和网站如人人网等,都使用了让侧边栏模块随滚动条滑动而位置固定的效果.就是当一个页面很长的时候,设定侧栏内容会跟随滚动条,这种效果适用于评论较多.内容较长的网站.志文工作室调研了几种类似功能的实现方法,摘录之以供参考. 参考一.提

设计Blogging标签——Word 2007高级应用

设计Blogging标签--Word 2007高级应用(六) 我希望在Ribbon里新增一个Blogging标签放置相关的按钮,而不是和现有的按钮混在一起.要做到这样,你需要对Visual Studio 2008 Beta 2为你创建的标签进行一些设置,把ControlIdType属性的值改为Custom,然后把Label属性设置为Blogging: 图 1 接着,从工具箱中分别拖出一个ToggleButton和一个Button,放在Visual Studio 2008 Beta 2为你创建的功

创建Word 2007插件项目——Word 2007高级应用

创建Word 2007插件项目--Word 2007高级应用 创建 Word 2007 插件项目 这里,我将会使用Visual Studio 2008 Beta 2所带的VSTO(Visual Studio Tools for Office)来开发这个插件,此外,Office 2007也是必须的. 图 1 如上图所示,你首先需要确保选择了 .NET Framework 3.5的项目,接着选择Visual C#Office2007Word Add-in作为项目模板(当然,你也可以选择Visual

Ribbon设计器——Word 2007高级应用

Ribbon设计器--Word 2007高级应用 VSTO 2005 SE以RibbonX的方式对Office 2007的Ribbon提供了支持,然而,这种支持不够直观,Visual Studio 2008 Beta 2所带的VSTO则提供了可视化的设计器支持,本文将会探讨如何使用设计器扩展Ribbon. 打开MyBlogsWordAddIn项目并创建一个新的Ribbon (Visual Designer): 图 1 完成Ribbon (Visual Designer) 的创建后,Visual

【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结

原文 http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html 去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为这2个软件各有优点,各有缺点. 1.首先用LiveWriter发博客显然更专业,发布后的效果也与本地最接近,但是在编辑功能上肯定大不如Word,另外一个最大缺点是它