A toolkit providing controls and other tools for UWP/WinUI 3 apps.
Download one of the DLLs from the Releases page, and add it as a reference in your Visual Studio project, or install one of the packages on NuGet:
For Windows Community Toolkit extensions, install one of the following packages:
See the Setup guide in the WinXamlToolkit Gallery for more information:
- Press Windows + R.
- Paste the following URL:
winxamltk-gallery:///item/SetupGuide - Press Enter.
- The WinXamlToolkit Gallery should launch to the setup guide.
Note
Microsoft.UI.Xaml.* namespaces are not provided by WinXamlToolkit - they are included in WinUI. For the classes in those namespaces, members are not listed.
classDiagram
direction LR
namespace Microsoft.UI.Xaml.Controls {
class Control
class ContentControl
class Button
class ButtonBase
class IconElement
class ToolTip
}
namespace Microsoft.UI.Xaml {
class FrameworkElement
class UIElement
class DependencyObject
}
namespace Microsoft.UI.Xaml.Markup {
class MarkupExtension
}
namespace FireBlade.WinXamlToolkit.Controls {
class Loading {
bool IsLoading
string LoadingText
bool IsIndeterminate
double Value
ProgressRing? LoadingRing
}
}
namespace FireBlade.WinXamlToolkit.Controls.Primitives {
class CopyButton
}
namespace FireBlade.WinXamlToolkit.Xaml {
class InputValidator {
DependencyProperty RegexProperty
GetRegex(DependencyObject obj)
SetRegex(DependencyObject obj, string value)
DependencyProperty MaxLengthProperty
GetMaxLength(DependencyObject obj)
SetMaxLength(DependencyObject obj, int value)
DependencyProperty MinLengthProperty
GetMinLength(DependencyObject obj)
SetMinLength(DependencyObject obj, int value)
DependencyProperty NotEmptyProperty
GetNotEmpty(DependencyObject obj)
SetNotEmpty(DependencyObject obj, bool value)
IsValid(DependencyObject obj)
}
class EnumExtension {
Type Type
string Value
}
}
namespace FireBlade.WinXamlToolkit.CommunityToolkitExtensions.Controls {
class TabbedRibbon {
IList<TabbedRibbonItem> Items
string ApplicationButtonText
RibbonApplicationMenuControl ApplicationMenu
Visibility HelpButtonVisibility
RibbonToolTip HelpButtonToolTip
bool IsRibbonExpanded
RoutedEventHandler? HelpRequested
}
class RibbonApplicationMenuControl {
ObservableCollection<IRibbonApplicationMenuItem> Items
ObservableCollection<RibbonRecentItem> RecentItems
string RecentItemTitle
}
class IRibbonApplicationMenuItem {
<<interface>>
}
class RibbonRecentItem {
string Title
object? Tag
bool IsPinned
Visibility PinButtonVisibility
}
class RibbonApplicationMenuButtonBase {
string Title
IconElement? Icon
}
class RibbonApplicationMenuButton {
RoutedEventHandler? Click
}
class RibbonApplicationMenuSeparator
class RibbonApplicationMenuToggleButton {
bool? IsChecked
bool IsThreeState
RoutedEventHandler? Checked
RoutedEventHandler? Unchecked
RoutedEventHandler? Indeterminate
RoutedEventHandler? Click
}
class RibbonApplicationMenuDropDownButton {
FlyoutBase Flyout
}
class RibbonApplicationMenuSplitButton {
FlyoutBase Flyout
}
class RibbonToolTip {
IconElement Icon
string Title
string Description
}
}
ContentControl <|-- Loading
Control <|-- ContentControl
FrameworkElement <|-- Control
UIElement <|-- FrameworkElement
DependencyObject <|-- UIElement
ContentControl <|-- ButtonBase
ButtonBase <|-- Button
Button <|-- CopyButton
MarkupExtension <|-- EnumExtension
Control <|-- TabbedRibbon
Control <|-- RibbonApplicationMenuControl
DependencyObject <|-- RibbonRecentItem
FrameworkElement <|-- IconElement
ButtonBase <|-- RibbonApplicationMenuButtonBase
RibbonApplicationMenuButtonBase ..|> IRibbonApplicationMenuItem
RibbonApplicationMenuButtonBase <|-- RibbonApplicationMenuButton
RibbonApplicationMenuSeparator ..|> IRibbonApplicationMenuItem
Control <|-- RibbonApplicationMenuSeparator
RibbonApplicationMenuButtonBase <|-- RibbonApplicationMenuToggleButton
RibbonApplicationMenuButtonBase <|-- RibbonApplicationMenuDropDownButton
RibbonApplicationMenuButtonBase <|-- RibbonApplicationMenuSplitButton
ContentControl <|-- ToolTip
ToolTip <|-- RibbonToolTip
Install the WinXamlToolkit Gallery to view the WinXamlToolkit controls and APIs in action!
- Clone the repository:
git clone https://github.com/FireBlade211/WinXamlToolkit.git
- Open WinXamlToolkit.slnx
- Make sure the WinXamlToolkit Gallery is set as the startup project.
- Set the build configuration to Release.
- Click Build -> Build WinXamlToolkit Gallery
- Click Build -> Deploy WinXamlToolkit Gallery
- You should now be able to launch the app through the start menu, protocol, or other ways to open apps.
WinXamlToolkit is licensed under the MIT license. See the license file for more information.