mirror of
https://github.com/alexandria121/new.git
synced 2026-10-12 02:10:53 +00:00
- Created new NuGet dependency specification files for NewGame.UI and NewGame projects. - Added project.assets.json to manage package dependencies and versions. - Included .props and .targets files for NuGet integration. - Configured project references and restore settings for .NET 9.0 Windows target framework. - Established package folders and cache for NuGet packages.
81 lines
2.1 KiB
C#
81 lines
2.1 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using NewGame.UI.ViewModels;
|
|
|
|
namespace NewGame.UI.Views;
|
|
|
|
public partial class DeckBuilderView : UserControl
|
|
{
|
|
private Point _startPoint;
|
|
private CardViewModel? _draggedCard;
|
|
|
|
public DeckBuilderView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void Card_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
_startPoint = e.GetPosition(null);
|
|
}
|
|
|
|
private void Card_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (e.LeftButton != MouseButtonState.Pressed) return;
|
|
|
|
var currentPosition = e.GetPosition(null);
|
|
var diff = _startPoint - currentPosition;
|
|
|
|
if (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
|
|
Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
|
|
{
|
|
var border = sender as Border;
|
|
var card = border?.DataContext as CardViewModel;
|
|
|
|
if (card != null)
|
|
{
|
|
_draggedCard = card;
|
|
var data = new DataObject("CardViewModel", card);
|
|
DragDrop.DoDragDrop(border!, data, DragDropEffects.Copy);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Deck_DragOver(object sender, DragEventArgs e)
|
|
{
|
|
if (e.Data.GetDataPresent("CardViewModel"))
|
|
{
|
|
e.Effects = DragDropEffects.Copy;
|
|
}
|
|
else
|
|
{
|
|
e.Effects = DragDropEffects.None;
|
|
}
|
|
e.Handled = true;
|
|
}
|
|
|
|
private void Deck_Drop(object sender, DragEventArgs e)
|
|
{
|
|
if (e.Data.GetDataPresent("CardViewModel"))
|
|
{
|
|
var card = e.Data.GetData("CardViewModel") as CardViewModel;
|
|
if (card != null && DataContext is MainViewModel vm)
|
|
{
|
|
vm.AddCardToDeck(card);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void DeckCard_RightClick(object sender, MouseButtonEventArgs e)
|
|
{
|
|
var border = sender as Border;
|
|
var card = border?.DataContext as CardViewModel;
|
|
|
|
if (card != null && DataContext is MainViewModel vm)
|
|
{
|
|
vm.RemoveCardFromDeck(card);
|
|
}
|
|
}
|
|
}
|