This document describes the API to wx.NET. This is complete referring to the synopsis of classes and methods since it is generated directly from source code. Unfortunately, several classes and functions are not yet described. In these cases, refer to the original wxWidgets documentation. Usually, wx.NET provides the same entities as wxWidgets does, for instance class wxWindow in wxWidgets is wrapped by a class wx.Window in wx.NET and method wx.Window.Show() wrapps method wxWindow.Show().
Refer to Components Of The File Distribution for some remarks on the file distribution and Building From Source for desciption on how to build the binaries.
If you start working with wx.NET, please consult Known Problems And Pitfalls.
With functional release 0.9, several methods changed their signature, so you probably will have to adjust existing code. These changes have been motivated by the goal to make wx.NET a real .NET library rather than a more or less complete binding of wxWidgets. So, wx.NET will use enumerations with attribute Flags like wx.WindowStyles instead of unsigned integers whereever possible in order to represend flags and styles. This eases use of the library dramatically since developers can use IntelliSense to list viable options on typing in methods.
The classes of wx.NET have been reorganized into several namespaces like wx.GridCtrl. This eases use of IntelliSense and navigation through the classes using the object manager.
Some concepts of wxWidgets simply do not fit into the .NET world like e.g. validators. Refer to wx.ComponentModel instead. Run WXNET_TOP/Bin/helpview.exe to have a look at the available documentation and WXNET_TOP/Bin/launcher.exe to run the samples.
Refer to Building From Source for notes on how to build wx.NET.
wx-c-0-9-0-3.dll still requires the VC++ 2008 redistributable package X86. wx-c-0-9-0-1.dll of release 0.9.0.1 has unfortunately been built in debug mode. Additionally, I missed to copy the .NET documentation wx.NET.XML into the release. Please apologize any inconvenience. This distribution also contains a fix to the wrapping of the accelerator table that caused access violations. Added tool getwxtext.exe to get gettext PO files translating enumerations, and class names. wx.NET.dll of this release refers to a native DLL wx-c-0-9-0-1.dll. From now on, many versions of wx.NET may be installed in GAC and System32 or /usr/lib directories without any interferences. All memory allocation actions will now be entered through a monitor since memory management in Windows is not thread safe. Classes have been reorganized into several namespaces like e.g. wx.GridCtrl. Style flags for windows (refer to wx.WindowStyles) and sizers are now enumerations. So, you can use IntelliSense when using controls and sizers. wx.StyledText, wx.Globalization, and wx.MaskedEdit have been added.helpview.exe has been added to the distribution in order to present platform independent HTB documentations on wx.NET, the samples and the original wxWidgets library. Unfortunately, programmers often have to consult the original documentation since the new wx.net.htb file is far from being complete. The text of this documentation is directly compiled from the C# source files. Additionally, a .NET XML documentation can be compiled from these remarks on the source code. Furthermore, this release introduces wx.Archive, the first pure .NET implementation of wx.NET. Many small changes on drawing, fonts, colours, and several controls increased reliability of the system.The following mind map scetches the purposes for further enhancements of wx.NET.
STAThreadAttribute on the entry point/ main function). wxWidgets as well as .NET will conduct OLE initialization and these initializations must be done consistently. using to inform .NET to dispose the object immediately after leaving the block (this is equivalent to the standard behavious in C++) or you may call wx.Object.Dispose() explicitely on the device context. wxWindow.Destroy() by the destructor. In .NET, destruction of objects will usually be deferred. So, wx.Window.Destroy() must be called explicitely to destroy a control that shall be replaced by another. As an examply refer to wx.HtmlWidgetCell that register themselves at the wx.HtmlWindow when they are inserted into that window. When a new page is loaded into that window, these widgets cells and the contained controls are no longer needed. The wx.HtmlWindow can destroy them automatically because they registered themselves. wx.Object explicitely using wx.Object.Dispose() in order to avoid memory leaks, since the wrappers will live until the system is sure that wxWidgets will not need their letter in the further more. Refer to wx.Object.InstancesCount and wx.Object.SavedInstancesCount to test this. wx.ColourDatabase.TheColourDatabase, wx.Pen.ThePenList, wx.Brush.TheBruchList, and wx.Font.TheFontList whenever possible. Get pens, brushes, and fonts from a window only once and cache them in a member variable. wx.Samples.ListCtrlApp and wx.Samples.MyHtmlListBox. Since the .NET framework uses an automatic memory management, use method wx.Window.Destroy() to eliminate the old window before adding the new one.