Based on lxn/walk which hasn't been updated for 3+ years, as well contributions to the fork tailscale/walk, simplified and modernized
Majority of this code can be sourced to:
Check out the LICENSE file for more information, or AUTHORS for a list of contributors.
I don't take credit for the majority of this code, as the above refs show there has been an incredible amount of work prior to my copy.
Wlk is a direct approach to rendering components via win32 API calls using WinForms. It starts fast and has minimum dependencies.
It does not have cross-platform support. It is exclusively for windows.
Check out # examples to see how the library looks.
There are many, many warnings for how old walk is. We are slowly going through and cleaning them up.
This is work in progress.
- Dark Mode is opted into by using
walk.SetDarkModeAllowed(true)
. This is disabled by default, and should be called before any other walk functions to ensure proper painting - If your program needs to detect if Dark Mode is enabled, use
walk.IsDarkModeEnabled()
- Dark Mode is detected via registry
- Theme changing (Light Mode / Dark Mode) subscription/notification is not yet implemented
- Overhaul all components to default to dark mode if enabled on initialization
- Allow custom theming.
A widget is a component that can be added to a container. It is a basic building block of a UI.
- Checkbox
- ComboBox
- CustomWidget
- DateEdit
- DateLabel
- Dialog
- GradientComposite
- ImageView
- Label
- LineEdit
- LinkLabel
- ListBox
- MainWindow
- NumberEdit
- NumberLabel
- ProgressBar
- PushButton
- RadioButton
- RadioButtonGroupbox
- ScrollView
- Separator
- Slider
- SplitButton
- TableView
- TabPage
- TextEdit
- TextLabel
- ToolBar
- ToolButton
- TreeView
- WebView
A widget container typically has children and let's you group or contain widgets together.
- Splitter
- HSpacer
- WSpacer
- Composite
- GroupBox