c# uwp 拖放 - 无法进行交换
c# uwp drag and drop - cant make a swap
所以我有 10x10 的图片网格,我想通过拖放来交换,但我实际上无法得到
images 目标和选择为了使 spaw
我全部来自视图模型代码
在晚上,发件人是一个网格,e 是 DragEventArgs
public MainViewModel()
{
GameGrid = new Grid { AllowDrop = true };
GameGrid.DragOver += GameGrid_DragOver;
GameGrid.Drop += GameGrid_Drop;
for (int row = 0; row < 10; row++)
{
GameGrid.RowDefinitions.Add(new RowDefinition());
for (int col = 0; col < 10; col++)
{
if (row == 0)
GameGrid.ColumnDefinitions.Add(new ColumnDefinition());
var image = new Image { Source = logic.GetImage(), CanDrag = true, AllowDrop = true };
Grid.SetRow(image, row);
Grid.SetColumn(image, col);
GameGrid.Children.Add(image);
}
}
}
private void GameGrid_DragOver(object sender, Windows.UI.Xaml.DragEventArgs e)
{
e.AcceptedOperation = DataPackageOperation.Move;
}
private async void GameGrid_Drop(object sender, Windows.UI.Xaml.DragEventArgs e)
{
if (logic.IsValidSwap(selected, selected))
{
}
}
// 但我无法获取图像以发送 func 是 validswap
而不是在事件中分配给网格:
GameGrid.DragOver += GameGrid_DragOver;
GameGrid.Drop += GameGrid_Drop;
它应该分配给 for 循环内的每个图像:
image.Drop += GameGrid_Drop;
image.DragOver += GameGrid_DragOver;
而且发送者将是图像——您可以知道列和行并进行切换。
所以我有 10x10 的图片网格,我想通过拖放来交换,但我实际上无法得到 images 目标和选择为了使 spaw 我全部来自视图模型代码 在晚上,发件人是一个网格,e 是 DragEventArgs
public MainViewModel()
{
GameGrid = new Grid { AllowDrop = true };
GameGrid.DragOver += GameGrid_DragOver;
GameGrid.Drop += GameGrid_Drop;
for (int row = 0; row < 10; row++)
{
GameGrid.RowDefinitions.Add(new RowDefinition());
for (int col = 0; col < 10; col++)
{
if (row == 0)
GameGrid.ColumnDefinitions.Add(new ColumnDefinition());
var image = new Image { Source = logic.GetImage(), CanDrag = true, AllowDrop = true };
Grid.SetRow(image, row);
Grid.SetColumn(image, col);
GameGrid.Children.Add(image);
}
}
}
private void GameGrid_DragOver(object sender, Windows.UI.Xaml.DragEventArgs e)
{
e.AcceptedOperation = DataPackageOperation.Move;
}
private async void GameGrid_Drop(object sender, Windows.UI.Xaml.DragEventArgs e)
{
if (logic.IsValidSwap(selected, selected))
{
}
}
// 但我无法获取图像以发送 func 是 validswap
而不是在事件中分配给网格:
GameGrid.DragOver += GameGrid_DragOver;
GameGrid.Drop += GameGrid_Drop;
它应该分配给 for 循环内的每个图像:
image.Drop += GameGrid_Drop;
image.DragOver += GameGrid_DragOver;
而且发送者将是图像——您可以知道列和行并进行切换。