From 8c53e76856062fbdd3eb78d7794ee209cd2f8779 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 11 Nov 2025 20:16:52 +0000
Subject: [PATCH 1/4] Initial plan
From d56b695557b9a2aeb08478c140855a3c56736b3a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 11 Nov 2025 20:20:41 +0000
Subject: [PATCH 2/4] Initial exploration - .NET 10 SDK installed
Co-authored-by: awaescher <3630638+awaescher@users.noreply.github.com>
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index fce34e1..1a9478b 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Drag&Drop in WinForms is cumbersome and error-prone. There are multiple events t
Wouldn't it be great if you could use Drag&Drop with fluent code like this?
-
+
```cs
private void picControlPreviewBehindCursor_MouseDown(object sender, MouseEventArgs e)
{
@@ -28,7 +28,7 @@ private void picControlPreviewBehindCursor_MouseDown(object sender, MouseEventAr
// To() to define target controls and how the dragged data should be used on drop
}
```
-snippet source | anchor
+snippet source | anchor
It's all in there: Putting data to the drag&drop operation, attaching a custom preview image to the mouse cursor, working with the dragged data once it's dropped and much more.
@@ -46,7 +46,7 @@ Careful developers won't track a flag whether the mouse button is still down or
FluentDrag&Drop does exactly that if defined with `OnMouseMove()`. However there is no flag or location to track. Methods like `WithData()` won't accept direct variables to be passed anymore, instead they require a function which gets called as soon as the mouse move is detected later on - if the user pressed and held the mouse button and if he moved a few pixels. Additionally, the developer has the possibility to validate the input like a valid control selection with `If()`. Of course, this gets called just like `WithData()` as soon as the user moves the mouse accordingly:
-
+
```cs
private void CountryList_MouseDown(object sender, MouseEventArgs e)
{
@@ -62,7 +62,7 @@ private void CountryList_MouseDown(object sender, MouseEventArgs e)
.To(target, MoveItems);
}
```
-snippet source | anchor
+snippet source | anchor
This (and the 5 line method `MoveItems()`) is everything we need to implement two-way Drag&Drop lists:
From e3636333082e14f90ae73aabcaf57029434d085c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 11 Nov 2025 20:23:23 +0000
Subject: [PATCH 3/4] Add .NET 10 multitargeting support to all projects
Co-authored-by: awaescher <3630638+awaescher@users.noreply.github.com>
---
.github/workflows/ci.yml | 1 +
src/FluentDragDrop.Effects/FluentDragDrop.Effects.csproj | 2 +-
src/FluentDragDrop/FluentDragDrop.csproj | 2 +-
src/FluentDragDrop/Preview/PreviewForm.cs | 2 ++
src/FluentDragDropExample/FluentDragDropExample.csproj | 2 +-
.../FluentDragDropNuGetExample.csproj | 2 +-
src/global.json | 4 ++--
7 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6f35b95..7c42359 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,6 +38,7 @@ jobs:
dotnet-version: |
6.0.x
8.0.x
+ 10.0.x
- name: Restore dependencies
run: dotnet restore src/FluentDragDrop.sln
diff --git a/src/FluentDragDrop.Effects/FluentDragDrop.Effects.csproj b/src/FluentDragDrop.Effects/FluentDragDrop.Effects.csproj
index 5b53e78..5c1223f 100644
--- a/src/FluentDragDrop.Effects/FluentDragDrop.Effects.csproj
+++ b/src/FluentDragDrop.Effects/FluentDragDrop.Effects.csproj
@@ -1,7 +1,7 @@
Library
- net6.0-windows;net8.0-windows
+ net6.0-windows;net8.0-windows;net10.0-windows
true
true
FluentDrag&Drop is the sexiest Drag&Drop implemtation for WinForms on this planet.
diff --git a/src/FluentDragDrop/FluentDragDrop.csproj b/src/FluentDragDrop/FluentDragDrop.csproj
index 46a696c..c76b3ea 100644
--- a/src/FluentDragDrop/FluentDragDrop.csproj
+++ b/src/FluentDragDrop/FluentDragDrop.csproj
@@ -1,7 +1,7 @@
Library
- net6.0-windows;net8.0-windows
+ net6.0-windows;net8.0-windows;net10.0-windows
true
true
Drag&Drop in WinForms is cumbersome and error-prone. There are multiple events to handle, members to track and properties to set on at least two controls.
diff --git a/src/FluentDragDrop/Preview/PreviewForm.cs b/src/FluentDragDrop/Preview/PreviewForm.cs
index fd5932b..d037be7 100644
--- a/src/FluentDragDrop/Preview/PreviewForm.cs
+++ b/src/FluentDragDrop/Preview/PreviewForm.cs
@@ -1,5 +1,6 @@
using FluentDragDrop.Effects;
using System;
+using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
@@ -133,6 +134,7 @@ protected override void OnLostCapture()
public IPreviewOpacityController PreviewOpacityController { get; private set; }
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool AllowUpdates { get; set; } = true;
}
}
diff --git a/src/FluentDragDropExample/FluentDragDropExample.csproj b/src/FluentDragDropExample/FluentDragDropExample.csproj
index 84f4d51..d266662 100644
--- a/src/FluentDragDropExample/FluentDragDropExample.csproj
+++ b/src/FluentDragDropExample/FluentDragDropExample.csproj
@@ -2,7 +2,7 @@
WinExe
- net6.0-windows;net8.0-windows
+ net6.0-windows;net8.0-windows;net10.0-windows
true
true
diff --git a/src/FluentDragDropNuGetExample/FluentDragDropNuGetExample.csproj b/src/FluentDragDropNuGetExample/FluentDragDropNuGetExample.csproj
index 895ada2..1b4140d 100644
--- a/src/FluentDragDropNuGetExample/FluentDragDropNuGetExample.csproj
+++ b/src/FluentDragDropNuGetExample/FluentDragDropNuGetExample.csproj
@@ -2,7 +2,7 @@
WinExe
- net6.0-windows;net8.0-windows
+ net6.0-windows;net8.0-windows;net10.0-windows
true
true
diff --git a/src/global.json b/src/global.json
index db989f5..9682ab7 100644
--- a/src/global.json
+++ b/src/global.json
@@ -1,7 +1,7 @@
{
"sdk": {
- "version": "3.1.100",
- "rollForward": "latestMajor",
+ "version": "10.0.100",
+ "rollForward": "latestMinor",
"allowPrerelease": true
}
}
\ No newline at end of file
From e8bbd8381a5a12c080aa5b709d362811190b8b86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20W=C3=A4scher?=
Date: Tue, 11 Nov 2025 21:51:36 +0000
Subject: [PATCH 4/4] Undo readme changes
---
README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 1a9478b..db3ff4a 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Drag&Drop in WinForms is cumbersome and error-prone. There are multiple events t
Wouldn't it be great if you could use Drag&Drop with fluent code like this?
-
+
```cs
private void picControlPreviewBehindCursor_MouseDown(object sender, MouseEventArgs e)
{
@@ -28,7 +28,7 @@ private void picControlPreviewBehindCursor_MouseDown(object sender, MouseEventAr
// To() to define target controls and how the dragged data should be used on drop
}
```
-snippet source | anchor
+snippet source | anchor
It's all in there: Putting data to the drag&drop operation, attaching a custom preview image to the mouse cursor, working with the dragged data once it's dropped and much more.
@@ -46,7 +46,7 @@ Careful developers won't track a flag whether the mouse button is still down or
FluentDrag&Drop does exactly that if defined with `OnMouseMove()`. However there is no flag or location to track. Methods like `WithData()` won't accept direct variables to be passed anymore, instead they require a function which gets called as soon as the mouse move is detected later on - if the user pressed and held the mouse button and if he moved a few pixels. Additionally, the developer has the possibility to validate the input like a valid control selection with `If()`. Of course, this gets called just like `WithData()` as soon as the user moves the mouse accordingly:
-
+
```cs
private void CountryList_MouseDown(object sender, MouseEventArgs e)
{
@@ -62,7 +62,7 @@ private void CountryList_MouseDown(object sender, MouseEventArgs e)
.To(target, MoveItems);
}
```
-snippet source | anchor
+snippet source | anchor
This (and the 5 line method `MoveItems()`) is everything we need to implement two-way Drag&Drop lists:
@@ -107,4 +107,4 @@ Those effects are powered by another project called [FluentTransitions](https://
---
-Images taken from Unsplash, links to these are located at [/doc/Unsplash](/doc/Unsplash).
+Images taken from Unsplash, links to these are located at [/doc/Unsplash](/doc/Unsplash).
\ No newline at end of file