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. TabControlの並べ替えは簡単ですか?
- 3. WPFリストビューロード時の並べ替え
- 4. WPF DataGridヘッダーファイルサイズの並べ替え
- 5. WPF DataGrid:行の並べ替え?
- 6. は、並び替え、ファイル名
- 7. TabControl - タブ間のスクロール
- 8. UITableViewControllerの行の並び替え
- 9. WPFツールキットチャートY軸降順並べ替え
- 10. wpfデータグリッドをプログラムで並べ替える
- 11. 並べ替えで並べ替え
- 12. Eclipseエクステンションポイントのエクステンションの並べ替え/並べ替え
- 13. jQuery並べ替え可能な項目の並び
- 14. タブの並べ替えが動作しません
- 15. 並べ替えメソッドを持つ人物の並べ替え
- 16. Laravel 4.2並べ替えの関係による並べ替え
- 17. VBA - ドラッグ&ドロップによる並べ替えの並べ替え
- 18. UITableView並べ替えのような並べ替え
- 19. WPFのDataGridの列幅と並べ替え
- 20. デフォルトの並べ替えの仕方wpf listview
- 21. WPFデータグリッドの複数の列を並べ替える
- 22. WPF Listview:列の並べ替えイベントですか?
- 23. Wpfフィルタと並べ替えを有効にしたリストビューのパフォーマンス
- 24. wpfでラッパーパネル内のCustomControlを並べ替えます。C#
- 25. ドラッグ&ドロップでリストボックス内のアイテムを並べ替えるwpf
- 26. アイテムの並べ替えによるWPF ListViewアニメーション?
- 27. Androidリストビュー並べ替えの問題
- 28. 並べ替えの生成
- 29. Webアプリケーションの並べ替え
- 30. 並べ替えの問題
良い答えは、しかし、あなたのリンクを更新する場合があります。彼らは死んでいる。 – SilverX
Bea Stollnitzのブログコンテンツは、インターネットアーカイブの[Wayback Machine](https://web.archive.org/web/20120620222921/http://bea.stollnitz.com/blog/?p=53)から入手できます。 – Informagic