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.NET and method
wx.Window.Show() wrapps method
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
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.dllstill requires the VC++ 2008 redistributable package X86.
wx-c-0-9-0-1.dllof release 0.9.0.1 has unfortunately been built in debug mode. Additionally, I missed to copy the .NET documentation
wx.NET.XMLinto 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.exeto get gettext PO files translating enumerations, and class names.
wx.NET.dllof 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.MaskedEdithave been added.
helpview.exehas 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.htbfile 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.
STAThreadAttributeon the entry point/ main function). wxWidgets as well as .NET will conduct OLE initialization and these initializations must be done consistently.
usingto 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.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.InstancesCountand wx.Object.SavedInstancesCount to test this.
wx.Font.TheFontListwhenever possible. Get pens, brushes, and fonts from a window only once and cache them in a member variable.
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.