Why WX.Net? 
    Release Notes
    Building From Source
    User Manual
    Reference Doc.
    WX.Build Doc.


Who's Who

Get WX.Net at SourceForge.net. Fast, secure and Free Open Source software downloads

Built with wxWidgets

Works on Mono


Why WX.Net?

Cross-Platform, Multi-Runtime

Without any extra work on your part, your application will run on Linux, Mac OS X, and Windows using any of the following .NET runtimes: MS.NET, Mono, or DotGNU Portable.NET.

Native UI, No Emulation

Unlike other toolkit approaches, WX.Net uses the native UI framework on each platform. Under Windows the WIN32 API is used to create buttons, checkboxes, etc. On Linux, GTK+ 2.0 is used (not really "native", but a look/feel users are familiar with). On the Mac, the full aqua look and feel is provided by using Quartz window compositing and HIView implementations for controls.

Other toolkits take the emulation route. This can cause look/feel inconsistencies to end users and slower executing interfaces.

Native UI Without Compromise

Some native UI toolkits have to make compromises by only providing those widgets and features that exist on all target platforms. This is the so-called "lowest common denominator" problem. WX.Net avoids this by either implementing missing widgets through compositing of native controls or by using a platforms' native themeing support. For example, MDI is available on Windows and Linux and advanced tree and list controls are available on all platforms.


WX.Net uses the concept of sizers to layout a user-interface. This makes creating cross-platform and/or variable font size UIs a breeze. You define your layout based on a hierarchy of widgets and sizers, and let WX.Net worry about the geometry and placement at runtime. Sizers can align their widgets vertically, horizontally, or in a grid. One or more of your widgets can be declared such that they "grow" into the available space in a window. As a window is resized, the sizers dynamically adjust the layout to account for the new window size.

Rapid Application Development Using UI Editors

Who wants to code UI bits by hand? Not us! WX.Net provides three different ways to design UIs graphically:

  • The TowxNET utility included in WX.Net can convert XRC or wxGlade WXG UI layout files into C# or VB.NET source code. You can edit the output code, add event handlers, etc. Similar to Visual Studio.NET's form editor, if you update your design and re-run TowxNET, your modifications remain intact: only the UI initialization code is affected.
  • The XmlResource class can be used to dynamically create dialogs and frames from XRC resource files. This is a great way to add skinning support to your app or to update parts of your UI without recompilation.
  • At least one dialog editor, wxDesigner, can generate C# code natively.

For more information see the WX.Net user's manual (TODO). XRC files can be exported from DialogBlocks, wxGlade, wxDesigner, and many others.

No Restrictions on Commercial Use

WX.Net uses the wxWidgets license. The license is essentially the L-GPL (Library General Public License), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software.

Completely Open Source

Not a single piece of WX.Net or wxWidgets is controlled by a company or in any way proprietary.

HTML Rendering Widget

The HtmlWindow class provides a lightweight HTML 3.2 rendering engine that is perfect for display rich text using a common API on all platforms. This is a great way to spice up reports, display built-in documentation, and provide micro-browser services.

There are also wx.Widgets interfaces to full-blown browser engines: wxIE for Windows, wxMozilla for Linux, and wxWebKitCtrl for Mac. The wxWidgets team is in the early stages of creating a unified wrapper around these. We plan on providing a WX.Net wrapper as soon as it is available.

Actively Maintained

WX.Net has an active developer community. And more importantly, it's underlying base, wxWidgets, is mature and actively maintained. If any bugs are found, they are quickly fixed. Because source code to both WX.Net and wxWidgets is available, you can easily compile a version of WX.Net with fixes before they are available in a new WX.Net release.