成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于silverlight一個“樹形結構圖”控件

開發 后端
傳統的樹形菜單只適用于展示,本控件提供了一個可視化的組織圖展示,并實現了一個對樹形圖的CRUD拖拽操作,可用于OA的人員維護或是部門關系圖。

傳統的樹形菜單只適用于展示,本控件提供了一個可視化的組織圖展示,并實現了一個對樹形圖的CRUD拖拽操作,可用于OA的人員維護或是部門關系圖。

1. 使用此控件只需要定義根節點的模板:

  1. <localControls:BranchNode Grid.Column="0" x:Name="unAllocateBranchNode" Margin="30"> 
  2.             <localControls:BranchNode.Template> 
  3.                 <ControlTemplate TargetType="localControls:BranchNode"> 
  4.                     <Grid x:Name="rootPanel" VerticalAlignment="Top" Height="{TemplateBinding Height}"> 
  5.                         <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" DataContext="{TemplateBinding Branch}"> 
  6.                             <Border x:Name="titlePanel" HorizontalAlignment="Stretch"  Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="3" BorderThickness="1"> 
  7.                                 <Border.Resources> 
  8.                                     <SolidColorBrush x:Key="normalBorder" Color="#9fa8b7"/> 
  9.                                     <SolidColorBrush x:Key="hightlightBorder" Color="Red"/> 
  10.                                 </Border.Resources> 
  11.                                 <StackPanel> 
  12.                                     <StackPanel Orientation="Horizontal"> 
  13.                                         <ContentPresenter Content="{Binding Name}" VerticalAlignment="Center" Margin="5"/>                          
  14.                                     </StackPanel> 
  15.  
  16.                                     <ItemsControl ItemsSource="{Binding Embranchment}"> 
  17.                                         <ItemsControl.ItemsPanel> 
  18.                                             <ItemsPanelTemplate> 
  19.                                                 <StackPanel/> 
  20.                                             </ItemsPanelTemplate> 
  21.                                         </ItemsControl.ItemsPanel> 
  22.                                         <ItemsControl.ItemTemplate> 
  23.                                             <DataTemplate> 
  24.                                                 <localControls:BranchNode Branch="{Binding}" Margin="3"/> 
  25.                                             </DataTemplate> 
  26.                                         </ItemsControl.ItemTemplate> 
  27.                                     </ItemsControl> 
  28.  
  29.                                 </StackPanel> 
  30.  
  31.                             </Border> 
  32.                         </StackPanel> 
  33.                     </Grid> 
  34.                 </ControlTemplate> 
  35.             </localControls:BranchNode.Template> 
  36.         </localControls:BranchNode> 

2. 然后綁定數據源

  1. Branch branch = new Branch();  
  2.             branch.Name = "財務部";   
  3.             branch.Embranchment = new ObservableCollection<Branch>()  
  4.             {  
  5.                 new Branch(){Name="財務部1"},  
  6.                 new Branch(){Name="財務部2"},  
  7.                 new Branch(){Name="財務部3"}  
  8.             };  
  9.                
  10.             branch.AppendBranch += new Action<Branch>(branch_AppendBranch);  
  11.             this.unAllocateBranchNode.Branch = branch

3. 核心使用了通用的推拽原型

  1. private void BindDragEvent()  
  2.         {  
  3.             bool isDragging = false;  
  4.             Point lastPosition = new Point(0, 0);  
  5.  
  6.             Popup rootPopup = new Popup();  
  7.             BranchNode ghostContainer = null;  
  8.             Branch parentBranch = null;  
  9.             Border lastTitlePanel = null;  
  10.             ...  
  11.             this.titlePanel.MouseLeftButtonDown += (source, eventArgs) => 
  12.             {  
  13.                 this.IsHitTestVisible = false;  
  14.  
  15.                 isDragging = true;  
  16.                 lastPosition = eventArgs.GetPosition(null);  
  17.                 ...  
  18.                 ghostContainer.MouseLeftButtonUp += (s, e) => 
  19.                 {     
  20.                     rootPopup.Child = null;  
  21.                     ...  
  22.                     isDragging = false;  
  23.                     this.ReleaseMouseCapture();  
  24.                     this.IsHitTestVisible = true;  
  25.                 };  
  26.  
  27.                 ghostContainer.MouseMove += (s, e) => 
  28.                 {  
  29.                     if (!isDragging)  
  30.                         return;  
  31.  
  32.                     ...  
  33.                     MatrixTransform mt = new MatrixTransform();  
  34.                     mt.Matrix = rt.Value;  
  35.  
  36.                     ghostContainer.RenderTransform = mt;  
  37.  
  38.                 };  
  39.             };  
  40.         } 

4. 源代碼下載: https://199.47.216.171/u/10032723/EasyOA.rar

5. 預覽

http://rapidsl2.guozili.25u.com/  (admin/admin  點左邊菜單 控件展示 - 組織樹形圖)

 

 

原文鏈接:http://www.cnblogs.com/guozili/archive/2012/07/08/2581422.html

責任編輯:張偉 來源: guozili的博客
相關推薦

2020-05-06 15:59:07

JavaScript程序員技術

2020-05-09 11:20:02

Java結構圖虛擬機

2012-02-02 16:37:51

Silverlight常用控件

2022-08-04 13:58:54

SeabornFacetGrid代碼

2011-07-05 08:56:43

JavaScript

2009-03-05 11:40:31

ListBox開發Silverlight

2015-01-08 09:37:54

數據中心結構圖機房結構圖

2010-07-05 12:37:29

用Visio畫UML圖

2009-12-30 13:30:16

Silverlight

2012-03-13 14:06:39

JavaJ2EE

2009-08-19 14:15:42

C# 復合控件

2009-04-13 10:52:59

網絡拓撲摩卡網絡

2009-12-30 13:51:43

Silverlight

2010-01-04 14:49:30

Silverlight

2009-09-27 13:57:19

Hibernate樹形

2010-08-06 11:14:35

SilverlightWindows PhoWindows Pho

2010-07-05 15:01:21

UML靜態結構圖

2010-07-05 14:48:25

UML靜態結構圖

2009-12-30 16:43:47

Silverlight

2009-08-14 10:14:07

Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区av | 爱爱免费视频 | 精品视频一区二区三区在线观看 | 国产成人精品综合 | 欧美极品在线播放 | 精品久久国产视频 | 午夜影视在线观看 | 日韩av福利在线观看 | 日韩一区二区久久 | 欧美日韩国产在线观看 | 手机在线观看av | 久久精品亚洲成在人线av网址 | 一级毛片视频在线观看 | 一区天堂 | 成人一区二 | 国产精品一区二区不卡 | 一区二区视频在线 | 欧美日韩国产在线观看 | 男女视频在线观看 | 韩日av片 | 91精品久久久久久久久久小网站 | 午夜影院黄| 日韩精品免费一区 | 先锋av资源网 | 日韩精品1区2区3区 成人黄页在线观看 | 亚洲欧美日韩网站 | 在线看免费的a | 国产午夜精品久久久 | 国产一区2区| 精品电影 | 毛片日韩| 成人美女免费网站视频 | 久夜精品 | 91综合网| 激情五月综合网 | 美女一区 | 一区二区三区国产精品 | 日韩福利在线观看 | 国产精品欧美一区二区 | 日韩精品一区在线 | 欧美黑人一区二区三区 |