Có cách nào dễ dàng để tùy chỉnh TabControl WPF để nó hỗ trợ kéo và thả TabItem - tương tự như IE và firefox làm gì.Sắp xếp lại các tab trong Tab WPFControl
14
A
Trả lời
20
Bạn có thể sử dụng hoặc bắt đầu với Bea Stollnitz's người trợ giúp hiện tại cho Dragging and Dropping in an ItemsControl. Nó có một số hạn chế như cô đề cập, nhưng đó là một nơi tuyệt vời để bắt đầu, và có lẽ sẽ làm việc như là cho hầu hết tất cả các chức năng mà bạn sẽ yêu cầu.
Sau khi nhập các lớp DragDropHelper và Adorner của mình, nó rất đơn giản để sử dụng chúng với TabControl (Vì nó là hậu duệ của ItemsControl).
Đặt mẫu kéo đơn giản và các thuộc tính trên TabControl là tất cả những gì chúng tôi cần. Vì giải pháp được thiết lập để xử lý việc kéo các mục bị ràng buộc dữ liệu, nếu các tab của bạn được khai báo tĩnh trong XAML thay vì sử dụng TabControl.ItemsSource thì bạn có thể chỉ ràng buộc DataContext của chúng với chính chúng.
<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>
Các vấn đề liên quan
- 1. Ẩn tiêu đề tab trong Tab WPFControl
- 2. Tạo các tab có thể sắp xếp lại trong Swing
- 3. Có thể sắp xếp lại các mục tab trong điều khiển tab trong wpf không?
- 4. Unix Sắp xếp với Tab Delimiter
- 5. Tự động sắp xếp các tab Visual Studio?
- 6. Tôi làm cách nào để ngăn các tab sắp xếp lại bên trong JetBrains IntelliJ?
- 7. Sắp xếp tệp phân cách tab dựa trên lệnh sắp xếp cột bash
- 8. Làm cách nào để sắp xếp lại Thứ tự tab KendoGrid?
- 9. Số của danh sách được sắp xếp thành 0 khi nhấp vào các tab jquery máng
- 10. Các tab jQuery chọn tab cụ thể
- 11. Chia sẻ lại: Đoạn mã với tab + tab
- 12. Tab WPFControl On SelectionChanged, đặt tiêu điểm thành trường văn bản
- 13. Làm thế nào để dễ dàng sắp xếp lại TabControl?
- 14. xem các tab trong eclipse
- 15. Bắt các tab trong TextArea
- 16. Tạo các tab trong WinRT
- 17. jquery sắp xếp lại các div
- 18. mảng Sắp xếp lại
- 19. Cách sắp xếp lại các phiên TMUX?
- 20. sắp xếp lại các phím mảng php
- 21. Ẩn mục tab tab và căn chỉnh các mục tab khác
- 22. Nhận yêu cầu Ngăn xếp chủ bút trong tab Mạng
- 23. Trình điều hướng tab Flex: khởi tạo các tab ẩn
- 24. Các mảnh vỡ trong các tab Fragment
- 25. Làm cách nào để sắp xếp lại các phân đoạn trong bộ điều khiển thanh tab của chế độ xem ban đầu trong xcode 4.5?
- 26. Sắp xếp trong bash
- 27. Thứ tự tab Delphi
- 28. Sắp xếp lại() không sắp xếp lại một cách chính xác một biến tố trong ggplot
- 29. Ẩn thanh tab trong ứng dụng thanh tab
- 30. Chèn các tab bằng .join trong python
Tốt câu trả lời, có thể muốn cập nhật các liên kết của bạn mặc dù. Họ đã chết. – SilverX
Nội dung blog của Bea Stollnitz có sẵn qua [Máy Wayback của Internet] (https://web.archive.org/web/20120620222921/http://bea.stollnitz.com/blog/?p=53). – Informagic