C#:USB设备枚举(七)WPF扩展方法

215 篇文章 2 订阅
120 篇文章 3 订阅

作者:Splash

转自:http://blog.csdn.net/jhqin/article/details/6951746


[csharp] view plain copy
  1. /* ---------------------------------------------------------- 
  2. 文件名称:WPFExtensions.cs 
  3.  
  4. 作者:秦建辉 
  5.  
  6. MSN:splashcn@msn.com 
  7. QQ:36748897 
  8.  
  9. 博客:http://blog.csdn.net/jhqin 
  10.  
  11. 开发环境: 
  12.     Visual Studio V2010 
  13.     .NET Framework 4 Client Profile 
  14.  
  15. 版本历史: 
  16.     V1.1    2011年11月07日 
  17.             实现扩展方法:WPF中TreeView类的ExpandAll功能 
  18.  
  19.     V1.0    2011年11月03日 
  20.             实现扩展方法:WPF中Button类的PerformClick功能 
  21. ------------------------------------------------------------ */  
  22. using System.Windows.Controls;  
  23. using System.Windows.Automation.Peers;  
  24. using System.Windows.Automation.Provider;  
  25.   
  26. namespace Splash.WPF  
  27. {  
  28.     /// <summary>  
  29.     /// 扩展方法  
  30.     /// </summary>  
  31.     public static partial class Extensions  
  32.     {  
  33.         /// <summary>  
  34.         /// 扩展方法:实现WPF中Button类的PerformClick功能  
  35.         /// </summary>  
  36.         /// <param name="button">Button实例</param>  
  37.         /// <remarks>  
  38.         /// 需要添加对UIAutomationProvider.dll的引用  
  39.         /// 参考网址:http://www.cnblogs.com/zhouyinhui/archive/2010/05/20/1740111.html  
  40.         /// </remarks>  
  41.         public static void PerformClick(this Button button)  
  42.         {  
  43.             ButtonAutomationPeer BAP = new ButtonAutomationPeer(button);  
  44.             IInvokeProvider IIP = BAP.GetPattern(PatternInterface.Invoke) as IInvokeProvider;  
  45.             if (IIP != null)  
  46.             {  
  47.                 IIP.Invoke();  
  48.             }  
  49.         }  
  50.        
  51.         /// <summary>  
  52.         /// 扩展方法:实现WPF中TreeView类的ExpandAll功能  
  53.         /// </summary>  
  54.         /// <param name="treeView">要展开的TreeView实例</param>  
  55.         /// <remarks>  
  56.         /// 参考网址:http://www.cnblogs.com/sayo/archive/2008/07/23/1249804.html          
  57.         /// </remarks>  
  58.         public static void ExpandAll(this TreeView treeView)  
  59.         {  
  60.             ExpandSubItems(treeView as ItemsControl);  
  61.         }  
  62.   
  63.         private static void ExpandSubItems(ItemsControl control)  
  64.         {  
  65.             if (control == nullreturn;  
  66.             foreach (object item in control.Items)  
  67.             {  
  68.                 TreeViewItem treeItem = control.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem;  
  69.                 if (treeItem != null && treeItem.HasItems)  
  70.                 {  
  71.                     treeItem.IsExpanded = true;  
  72.                     ExpandSubItems(treeItem as ItemsControl);  
  73.                 }                 
  74.             }  
  75.         }          
  76.     }  
  77. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值