Files
new/NewGame.UI/Views/DeckBuilderView.xaml.cs
T
alexandriaa ceaf3cca1f Add NuGet configuration and project assets for NewGame.UI
- 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.
2026-04-05 16:07:06 -04:00

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);
}
}
}