Я новичок в WPF, поэтому, пожалуйста, несите меня. В UniformGrid я добавляю несколько UserControls, которые создаются во время выполнения. Я хочу знать, как перетаскивать, перемещать или менять положение этих элементов управления во время выполнения. Я искал по всему Интернету, но не мог найти ничего полезного.Перетащите предмет падения внутри Равномерная сетка
2
A
ответ
1
UniformGrid
- это элемент управления компоновкой. Вы не можете напрямую взаимодействовать с ним.
Чтобы достичь того, что вам нужно, я предлагаю вам это решение.
- Создать
ItemsControl
элемент - Измените
ItemsPanel
кUniformGrid
- Используйте GongSolutions.Wpf.DragDrop project. Вы можете установить его из nuGet http://www.nuget.org/packages/gong-wpf-dragdrop/
Это решение может быть написано без кода кода или VM.
<Window x:Class="WpfApplication6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
Title="MainWindow" Height="350" Width="525">
<ItemsControl Height="150"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<system:String>Item 1</system:String>
<system:String>Item 2</system:String>
<system:String>Item 3</system:String>
</ItemsControl.Items>
</ItemsControl>
</Window>
Update:
Если вам нужно перетаскивать элементы из другого элемента управления, то добавьте в ваш файл кода.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
SourceOfItems = new List<string>() { "Source 1", "Source 2", "Source 3" };
Items = new ObservableCollection<string>() { "Item 1", "Item 2", "Item 3" };
}
public ObservableCollection<string> Items { get; private set; }
public List<string> SourceOfItems { get; private set; }
}
и обновить XAML как это:
<Window x:Class="WpfApplication6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<ListBox ItemsSource="{Binding SourceOfItems}"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="False"/>
<ItemsControl Height="150"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
ItemsSource="{Binding Items}"
Background="Plum"
>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</Window>
Смежные вопросы
- 1. Равномерная сетка WPF
- 2. Сетка не загружается как предмет пенитенциарной системы.
- 3. Сетка или рамка, не допускающая падения
- 4. Кендо Сетка: Drag & Drop прокручивает вверх после падения
- 5. jQuery UI - перетащите элемент из области падения и отбросьте его обратно в ту же область падения. Событие сбрасывания не срабатывает.
- 6. Равномерная выборка (по объему) внутри конуса
- 7. RecyclerView Перетащите и положение падения не работает андроид
- 8. Перетащите изображение внутри ячейки div
- 9. Уплотненная щий сетка (сетка внутри CellTemplate)
- 10. Сетка 960gs Внутри сетки
- 11. Сетка внутри ContextMenu
- 12. Сетка с ящиком внутри
- 13. Перетащите и перетащите HTML-списки
- 14. Перетащите UIImageView из ScrollView
- 15. Равномерная обрезка упорядоченного набора
- 16. Равномерная дискретизация кривой Безье
- 17. Равномерная выборка вокруг полушария
- 18. Невыпуклая равномерная триангуляция сетки
- 19. Равномерная стоимость поиска
- 20. Javascript: равномерная длина подмассивов
- 21. QListView индикатор индикатора падения
- 22. Как получить контейнер перетаскиваемого внутри события падения?
- 23. jQuery событие падения внутри TinyMce Orchard
- 24. Wordpress featured размер изображения равномерная высота
- 25. равномерная инициализация статического члена constexpr
- 26. Перетащите выделенный текст внутри iphone TextView
- 27. jQuery draggable - Перетащите небольшое изображение внутри родителя
- 28. Перетащите тег изображения внутри тега группы svg
- 29. Перетащите изображение внутри круга (круговое движение)
- 30. HTML Перетащите div внутри другого div
Как я могу добавить элементы в ItemsControl динамически во время выполнения? Как я делаю в единой сетке, в которой я перетаскиваю элемент во время выполнения. – mrafiraza
Связать элементы ItemsControl ItemsSource с наблюдаемым набором. Вам нужна помощь для этого? –
sacha
Да, пожалуйста. Я был бы очень благодарен вам. – mrafiraza