첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ TreeViewItem 클래스의 Expanded 이벤트와 TreeView 클래스의 MouseUp 이벤트를 사용해 트리뷰 노드 확장시 커서를 대기 커서로 표시하는 방법을 보여준다.

 

▶ 예제 코드 (C#)

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
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요