■ TreeViewItem 클래스의 Expanded 이벤트와 TreeView 클래스의 MouseUp 이벤트를 사용해 트리뷰 노드 확장시 커서를 대기 커서로 표시하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
using System.Windows; using System.Windows.Controls; using System.Windows.Input; #region 윈도우 로드시 처리하기 - Window_Loaded(sender, e) /// <summary> /// 윈도우 로드시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void Window_Loaded(object sender, RoutedEventArgs e) { this.treeView.AddHandler(TreeViewItem.ExpandedEvent, new RoutedEventHandler(treeViewItem_Expanded) ); this.treeView.AddHandler(TreeView.MouseUpEvent , new RoutedEventHandler(treeView_MouseUp ), true); } #endregion #region 트리 뷰 항목 확장시 처리하기 - treeViewItem_Expanded(sender, e) /// <summary> /// 트리 뷰 항목 확장시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void treeViewItem_Expanded(object sender, RoutedEventArgs e) { TreeViewItem treeViewItem = e.OriginalSource as TreeViewItem; if(treeViewItem == null) { return; } if(treeViewItem.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) { return; } if(treeViewItem.Items.Count >= 1000) { Cursor = Cursors.Wait; } } #endregion #region 트리 뷰 마우스 UP 처리하기 - treeView_MouseUp(sender, e) /// <summary> /// 트리 뷰 마우스 UP 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void treeView_MouseUp(object sender, RoutedEventArgs e) { Cursor = Cursors.Arrow; } #endregion |