WPF TabControlを簡単にカスタマイズして、TabItemのドラッグ&ドロップをサポートします。これはIEとFirefoxのようなものです。WPF TabControlのタブの並び替え
14
A
答えて
20
Dragging and Dropping in an ItemsControlの既存のヘルパーは、Bea Stollnitz'sのヘルパーを使用するか、使い始めることができます。彼女が言及しているように、いくつかの制限がありますが、それは始めるのに最適な場所であり、おそらくあなたが必要とするほとんどすべての機能のために動作します。
DragDropHelperクラスとAdornerクラスをインポートした後は、TabControl(ItemsControlの子孫であるため)で使用するのは非常に簡単です。
単純なドラッグテンプレートを設定すると、TabControlのプロパティがすべて必要です。データバインドされた項目のドラッグを処理するようにソリューションが設定されているため、TabControl.ItemsSourceを使用する代わりにタブがXAMLで静的に宣言されている場合、DataContextを自分自身にバインドできます。
<Window x:Class="Samples.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dd="clr-namespace:DragDropListBox"
Title="Dragging TabItems"
Height="300"
Width="300">
<Window.Resources>
<DataTemplate x:Key="Local_TabItemDragTemplate">
<Border CornerRadius="5"
BorderBrush="Black"
BorderThickness="2"
Background="DodgerBlue">
<TextBlock Margin="5"
Text="{Binding Path=Header}" />
</Border>
</DataTemplate>
</Window.Resources>
<StackPanel>
<TabControl dd:DragDropHelper.IsDragSource="true"
dd:DragDropHelper.IsDropTarget="true"
dd:DragDropHelper.DragDropTemplate="{StaticResource Local_TabItemDragTemplate}">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="DataContext"
Value="{Binding RelativeSource={RelativeSource Self}}" />
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="Tab 1" />
<TabItem Header="Tab 2" />
<TabItem Header="Tab 3" />
<TabItem Header="Tab 4" />
</TabControl>
<TabControl dd:DragDropHelper.IsDragSource="true"
dd:DragDropHelper.IsDropTarget="true"
dd:DragDropHelper.DragDropTemplate="{StaticResource Local_TabItemDragTemplate}">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="DataContext"
Value="{Binding RelativeSource={RelativeSource Self}}" />
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="Tab 5" />
<TabItem Header="Tab 6" />
<TabItem Header="Tab 7" />
<TabItem Header="Tab 8" />
</TabControl>
</StackPanel>
関連する問題
- 1. いくつかのタブを左に並べ、他のタブを右に並べる方法は? (wpfのTabControl)
- 2. ブートストラップ:列の並び替え
- 3. コードを使用してTabControlのタブに切り替える
- 4. R:文字の並び替えと並べ替え
- 5. TabControlの並べ替えは簡単ですか?
- 6. WPF DataGrid:行の並べ替え?
- 7. WPF DataGridヘッダーファイルサイズの並べ替え
- 8. WPFリストビューロード時の並べ替え
- 9. IOS - 並べ替えの後ろに隠れたタブ並べ替えタブコントローラ
- 10. TabControl - タブ間のスクロール
- 11. は、並び替え、ファイル名
- 12. 並び替え、行と列
- 13. WPFツールキットチャートY軸降順並べ替え
- 14. wpfデータグリッドをプログラムで並べ替える
- 15. データテーブルの各行の並び替え
- 16. リストのリストの並び替えPython
- 17. UITableViewControllerの行の並び替え
- 18. 複数行の並びを並び替える
- 19. DynamoDBの:並べ替えおよびフィルタリングインデックス
- 20. 座標配列の並び替えJava
- 21. テキスト文書の並び替え
- 22. ListViewAdapterのMergeCursorを並べ替えたり並び替える方法
- 23. C++の選択並べ替えなし並べ替え並べ替えなし
- 24. 選択並べ替え並べ替え
- 25. 並べ替えで並べ替え
- 26. Shinyのタブ間でデータの並べ替えを維持する
- 27. ヒープの並べ替えと挿入の並べ替え
- 28. Eclipseエクステンションポイントのエクステンションの並べ替え/並べ替え
- 29. DB内での並べ替えとアプリケーションの並べ替え
- 30. 列の並べ替えの矢印並べ替え
良い答えは、しかし、あなたのリンクを更新する場合があります。彼らは死んでいる。 – SilverX
Bea Stollnitzのブログコンテンツは、インターネットアーカイブの[Wayback Machine](https://web.archive.org/web/20120620222921/http://bea.stollnitz.com/blog/?p=53)から入手できます。 – Informagic