Skip to content

FireBlade211/WinXamlToolkit

Repository files navigation

WinXamlToolkit

A toolkit providing controls and other tools for UWP/WinUI 3 apps.

Installation

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:

  1. Press Windows + R.
  2. Paste the following URL: winxamltk-gallery:///item/SetupGuide
  3. Press Enter.
  4. The WinXamlToolkit Gallery should launch to the setup guide.

Namespaces and Classes

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
Loading

Gallery

Install the WinXamlToolkit Gallery to view the WinXamlToolkit controls and APIs in action!

  1. Clone the repository:
    git clone https://github.com/FireBlade211/WinXamlToolkit.git
  2. Open WinXamlToolkit.slnx
  3. Make sure the WinXamlToolkit Gallery is set as the startup project.
  4. Set the build configuration to Release.
  5. Click Build -> Build WinXamlToolkit Gallery
  6. Click Build -> Deploy WinXamlToolkit Gallery
  7. You should now be able to launch the app through the start menu, protocol, or other ways to open apps.

License

WinXamlToolkit is licensed under the MIT license. See the license file for more information.

About

A toolkit providing controls and other tools for UWP/WinUI 3 apps.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages