DXControl
🖌️ A WinForms hybrid control that supports Direct2D drawing
Install / Use
/learn @d2phap/DXControlREADME
D2Phap.DXControl
- A WinForms control that supports drawing with Direct2D thanks to WicNet.
- This control has been used in ImageGlass software since version 9.0.
Resource links
- Nuget package: https://www.nuget.org/packages/D2Phap.DXControl
- Project url: https://github.com/d2phap/DXControl
- About: https://imageglass.org/about
Features
- High performance drawing using Direct2D.
- Names and types are exactly the same as the native concepts of Direct2D (interfaces, enums, structures, constants, methods, arguments, guids, etc...). So you can read the official documentation, use existing C/C++ samples, and start coding with .NET right away.
- All native COM interfaces are generated as .NET (COM) interfaces, this makes .NET programming easier, but they are not strictly needed.
- Option to use Software or Hardware render target
- Supports animation drawing with Direct2D.
Requirements:
- .NET 8.0, 9.0
Installation
Run the command
Install-Package D2Phap.DXControl
Example
<img src="https://github.com/user-attachments/assets/837414d9-b342-487b-99c9-056b8a24205d" width="500" />Draws a rectangle, then moves it to the right side.
using D2Phap.DXControl;
// create a WinForms custom control that extends from DXCanvas
public class DemoCanvas : DXCanvas
{
private RectangleF animatableRectangle = new(100, 100, 400, 200);
public DemoCanvas()
{
EnableAnimation = true;
UseHardwareAcceleration = true;
}
protected override void OnRender(DXGraphics g)
{
// draw a yellow rectangle with green border
g.FillRectangle(rectText, Color.FromArgb(100, Yellow));
g.DrawRectangle(rectText, Color.Green);
}
// Update frame logics for animation
protected override void OnFrame(FrameEventArgs e)
{
// animate the rectangle to the right
animatableRectangle.left++;
}
}
See Demo project for full details.
License
Support this project
Thanks for your gratitude and finance help!
Related Skills
openhue
342.0kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
342.0kElevenLabs text-to-speech with mac-style say UX.
weather
342.0kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.5kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
