2012-11-29 4 views
2

데이터를 내 애플리케이션 외부에서 TabControl로 드래그합니다. "탭"위로 드래그하여 그 탭을 앞으로 가져올 수있게하고 싶습니다. TabControl 및 TabItems에 대한 드래그 이벤트는 활성 탭에서만 발생하며 "탭"자체가 아닌 탭 내용 위로 드래그하면 실행됩니다.탭 위로 드래그하여 앞으로 가져 오기

Drag to tab

제어를위한 마크 업입니다

<Window 
    x:Class="DragOverTabExample.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" 
    Height="350" 
    Width="525"> 
    <TabControl 
     HorizontalAlignment="Stretch" 
     VerticalAlignment="Stretch"> 
     <TabItem 
      Header="Tab A"> 
      <TextBlock>Tab A</TextBlock> 
     </TabItem> 
     <TabItem 
      Header="Tab B"> 
      <TextBlock>Tab B</TextBlock> 
     </TabItem> 
    </TabControl> 
</Window> 

는 내가있는 TabControl 개별 TabItems, 아래의로 dragOver과의 dragEnter 이벤트에 부착하지만, 같은 모두 행동을 추가하려고했습니다 탭 위에 드래그하는 동안 아무도 작동하지 않는 것 같습니다.

namespace Sample 
{ 
    public class ActivateOnDragOverBehaviour : Behavior<TabControl> 
    { 
     protected override void OnAttached() 
     { 
      AssociatedObject.DragOver += ActivateTab; 
     } 

     private void ActivateTab(object sender, DragEventArgs e) 
     { 
      // Bring hovered tab to front 
     } 
    } 
} 
+0

우리에게 지금까지 가지고있는 코드를 보여주십시오 발생하는 이벤트 순서에 TabControl에 AllowDrop의이 = "true"로 설정해야합니다. –

+0

@Benjamin - 내가 사용한 샘플을 추가했습니다. TabControl 동작의 경우, 위의 시도뿐만 아니라 각 TabControls 하위 항목 dragover/dragenter 이벤트에 연결했습니다. 또한 모든 TabItem 컨트롤에 추가 된 유사한 동작을 시도했습니다. –

답변

관련 문제