VirtualDesktop.WPF
5.0.5
dotnet add package VirtualDesktop.WPF --version 5.0.5
NuGet\Install-Package VirtualDesktop.WPF -Version 5.0.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VirtualDesktop.WPF" Version="5.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VirtualDesktop.WPF --version 5.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: VirtualDesktop.WPF, 5.0.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install VirtualDesktop.WPF as a Cake Addin #addin nuget:?package=VirtualDesktop.WPF&version=5.0.5 // Install VirtualDesktop.WPF as a Cake Tool #tool nuget:?package=VirtualDesktop.WPF&version=5.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
VirtualDesktop
VirtualDesktop is C# wrapper for IVirtualDesktopManager on Windows 11 (and Windows 10).
Features
- Switch, add, and remove a virtual desktop.
- Move the window in the same process to any virtual desktop.
- Move the window of another process to any virtual desktop (Support in version 2.0 or later).
- Pin any window or application; will be display on all desktops.
- Notification for switching, deletion, renaming, etc.
- Change the wallpaper for each desktop.
Sample app
samples/VirtualDesktop.Showcase
Requirements
<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
- .NET 5 or 6
- Windows 10 build 19041 (20H1) or later
Installation
Install NuGet package(s).
PM> Install-Package VirtualDesktop
- VirtualDesktop - Core classes for VirtualDesktop.
- VirtualDesktop.WPF - Provides extension methods for WPF Window class.
- VirtualDesktop.WinForms - Provides extension methods for Form class.
How to use
Preparation
Because of the dependency on C#/WinRT (repo), the target framework must be set to net5.0-windows10.0.19041.0
or later.
<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
If it doesn't work, try creating an app.manifest
file and optimize to work on Windows 10.
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
The namespace to use is WindowsDesktop
.
using WindowsDesktop;
Get instance of VirtualDesktop class
// Get all virtual desktops
var desktops = VirtualDesktop.GetDesktops();
// Get Virtual Desktop for specific window
var desktop = VirtualDesktop.FromHwnd(hwnd);
// Get the left/right desktop
var left = desktop.GetLeft();
var right = desktop.GetRight();
Manage virtual desktops
// Create new
var desktop = VirtualDesktop.Create();
// Remove
desktop.Remove();
// Switch
desktop.GetLeft().Switch();
Subscribe virtual desktop events
// Notification of desktop switching
VirtualDesktop.CurrentChanged += (_, args) => Console.WriteLine($"Switched: {args.NewDesktop.Name}");
// Notification of desktop creating
VirtualDesktop.Created += (_, desktop) => desktop.Switch();
for WPF window
// Need to install 'VirtualDesktop.WPF' package
// Check whether a window is on the current desktop.
var isCurrent = window.IsCurrentVirtualDesktop();
// Get Virtual Desktop for WPF window
var desktop = window.GetCurrentDesktop();
// Move window to specific Virtual Desktop
window.MoveToDesktop(desktop);
// Pin window
window.Pin()
See also:
License
This library is under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0-windows10.0.19041 is compatible. net6.0-windows was computed. net6.0-windows10.0.19041 is compatible. net7.0-windows was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net5.0-windows10.0.19041
- VirtualDesktop (>= 5.0.5)
-
net6.0-windows10.0.19041
- VirtualDesktop (>= 5.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.5 | 1,038 | 2/7/2022 |
5.0.4 | 471 | 2/6/2022 |
5.0.2 | 472 | 2/6/2022 |
5.0.1 | 474 | 2/5/2022 |
5.0.0 | 477 | 2/5/2022 |
4.0.1 | 1,076 | 3/22/2020 |
4.0.0 | 602 | 3/22/2020 |
2.0.0-beta3 | 993 | 8/6/2016 |
2.0.0-beta2 | 765 | 8/6/2016 |
2.0.0-beta | 1,167 | 8/3/2016 |
1.0.3 | 1,652 | 12/15/2015 |
1.0.2 | 1,034 | 12/15/2015 |
1.0.1 | 982 | 12/15/2015 |
1.0.0 | 991 | 12/15/2015 |