Gibt es eine einfache Möglichkeit, das WPF TabControl so anzupassen, dass es Drag & Drop TabItem unterstützt - ähnlich wie IE und Firefox tun.Tabs in WPF TabControl neu anordnen
Antwort
Sie könnten mit Bea Stollnitz's vorhandenen Helfern für Dragging and Dropping in an ItemsControl verwenden oder beginnen. Es hat einige Einschränkungen, wie sie erwähnt, aber es ist ein großartiger Ort, um zu beginnen, und wird wahrscheinlich funktionieren, wie es für die meisten der Funktionalität ist, die Sie benötigen.
Nach dem Import ihrer DragDropHelper und Adorner-Klassen ist es sehr einfach, sie mit der TabControl (Da es ein Nachkomme von ItemsControl ist) zu verwenden.
Das Festlegen einer einfachen Ziehvorlage und der Eigenschaften auf der Registerkarte TabControl sind alles was wir brauchen. Da die Lösung für das Ziehen von datengebundenen Elementen eingerichtet ist, können Sie, wenn Ihre Registerkarten statisch in XAML deklariert sind, anstatt die TabControl.ItemsSource zu verwenden, den DataContext einfach an sich selbst binden.
<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 Neuordnungs Tabs
- 2. Wie lässt sich TabControl einfach neu anordnen?
- 3. WPF DataGrid: Zeilen neu anordnen?
- 4. WPF TabControl Position Tabs in der oberen rechten Ecke
- 5. Benutzerdefinierte Schaltflächen neu anordnen
- 6. WPF TabControl Styling
- 7. WPF Zugang Datagrid in Tabs
- 8. WPF zIndex in TabControl
- 9. Style WPF Tabs wie Visual Studio Tabs
- 10. Geojson Punkte neu anordnen
- 11. lineare Gleichung neu anordnen
- 12. XAML-Code neu anordnen?
- 13. anzeigen SelectedIndex in WPF TabControl Header-Template
- 14. WPF: Center TabItems in einem TabControl
- 15. Ausblenden Animation in WPF Tabcontrol
- 16. WPF TabControl und DataTemplates
- 17. WPF: TabControl & DataTemplates
- 18. WPF TabControl vs. Seiten
- 19. WPF Customized TabControl
- 20. Symfony 2 - Formularfelder neu anordnen
- 21. Datentabelle nach Spalte neu anordnen
- 22. Hostnamen analysieren und neu anordnen
- 23. iPhone: UITableView Zeilen neu anordnen
- 24. Reshape und neu anordnen Array
- 25. PHP Array-Schlüssel neu anordnen
- 26. Icons in TabControl C# - Wie?
- 27. Zeilen in einem dat.frame neu anordnen?
- 28. Zeilen in einer datengebundenen Datagridansicht neu anordnen
- 29. Tasten in einem iPhone-Alarm neu anordnen?
- 30. Modellobjekte in Django Admin-Panel neu anordnen
Gute Antwort, möchten wenn Sie Ihre Links aktualisieren. Sie sind tot. – SilverX
Der Blog-Inhalt von Bea Stollnitz ist über die [Wayback Machine] des Internet-Archivs verfügbar (https://web.archive.org/web/20120620222921/http://bea.stollnitz.com/blog/?p=53). – Informagic