Actipro Avalonia Controls

repository·develop·Indexed 19 days ago

https://github.com/actipro/avalonia-controls

A suite of professional UI components, themes, and utilities for Avalonia applications. It includes free foundational libraries and premium Pro products such as Actipro Bars (ribbons, toolbars, menus), Actipro Docking & MDI, Actipro Fundamentals, and Actipro Data Visualization. Supports .NET 8+ across Windows, macOS, Linux, and WASM.

Tokens
232.3K
Snippets
524
Records
1.1K
Agent score
65%

What's inside Actipro Avalonia Controls

  1. Overview of the Actipro Shared Library

    develop

    The Actipro Shared Library is a free collection of common controls and components designed to be used across all Actipro Avalonia products. It provides utility controls for UI enhancement, media handling, and layout adjustments that can be integrated into any Avalonia project.

    Key categories include:

    • General Controls: UI decorators, specialized buttons, and layout presenters.
    • Shapes: Specialized rendering shapes like RingSlice.
    • Media: Enhanced color handling via UIColor.
    • Menu Factory: Tools for customizing contextual menus.
    • Utilities: Extension methods and value converters for Avalonia types.
  2. Overview of Actipro Themes

    develop

    Actipro Themes is a framework for managing themes for both Actipro and native Avalonia controls, as well as custom controls. It provides a professional appearance through a system of theme definitions, generators, and assets.

    Key capabilities include:

    • Native Control Themes: Included for all native Avalonia controls by default to ensure they blend with Actipro controls.
    • Light and Dark Variants: Built-in support for both modes, allowing for instant toggling.
    • Dynamic Generation: Theme resources (brushes, thicknesses, etc.) are generated dynamically via a theme generator based on a theme definition.
    • UI Density Control: Application-wide settings to adjust spacing (margins, paddings, corner radii) for different density requirements.
    • Extensibility: Ability to customize, override, or append theme assets like brushes, glyphs, and control themes.
    • Theme Assets: Reusable resources including brushes, thicknesses, and glyphs that can be used in custom controls to maintain consistency.
  3. Overview of Actipro Avalonia Free Products

    develop

    Actipro provides several free products to serve as a foundation for high-quality applications:

    • Themes: Ensures a consistent visual appearance across both Actipro Avalonia controls and native Avalonia controls.
    • Shared Library: A common control library used by all Actipro Avalonia controls. It contains useful controls, components, value converters, and utilities.
    • Core Library: A UI framework-agnostic class library containing helpful utilities and base classes for .NET projects.
  4. Overview of Actipro Docking & MDI

    develop

    Actipro Docking & MDI is a solution for adding docking tool windows and Multiple Document Interface (MDI) capabilities to Avalonia applications. It supports standard docking layouts, nested dock sites, and side-by-side dock sites.

    Key capabilities include:

    • Docking Windows: Supports document windows (which can be floated) and tool windows (which can be docked, auto-hidden, floated, or moved into MDI).
    • MDI Styles: Supports both tabbed MDI and standard windowed MDI.
    • Layout Flexibility: Supports nesting dock sites (hierarchies within a dock site) and linking dock sites (allowing windows to be dragged between different sets of docking windows).
    • Workspace Customization: Allows hosting custom content in a workspace area or using 'tool window inner fill mode' where the workspace area is removed.
  5. Overview of Actipro Bars Controls

    develop

    Actipro Bars provides a suite of built-in controls specifically designed for use within ribbons, toolbars, and menus.

    Core Concepts

    Most controls share a common set of features including:

    • Visuals: Keys, labels, images, titles, and variant sizes.
    • Interaction: Key tips, input gesture text, and screen tips.
    • Architecture: Full MVVM support and integration with the command model.

    Control Implementation Patterns

    Controls are often implemented differently depending on the context (Ribbon/Toolbar vs. Menu) to ensure they behave naturally in each environment. For example:

    • A Button concept is implemented as a BarButton for ribbons/toolbars and as a BarMenuItem for menus.
    • A Popup Button concept is a button in ribbons that opens a popup, or a menu item with a submenu in menus.
  6. Overview of Actipro Avalonia Products

    develop

    Actipro provides a range of UI components for Avalonia, categorized into Pro and Free products.

    Pro Products (Commercial)

    Requires a license. Includes access to XAML source for default styles and themes.

    • Actipro Bars: Advanced Office-like ribbon, toolbar, and menu functionality (supports multiple layout modes, backstage, and MVVM).
    • Actipro Docking & MDI: A complete solution for docking tool windows and Multiple Document Interface (MDI) features similar to modern IDEs.
    • Actipro Fundamentals: A collection of advanced controls like settings editors, message boxes, info bars, avatars, badges, and range sliders.
    • Actipro Data Visualization: Modern barcode generation (QR Code, Micro QR Code, Code 128, etc.) with a highly customizable BarcodePresenter.

    Free Products

    Available for anyone to use.

    • Actipro Themes: Provides a consistent visual appearance for both Actipro and native Avalonia controls.
    • Actipro Shared Library: A common library containing useful controls, components, value converters, and utilities.
    • Actipro Core Library: A UI framework-agnostic class library containing .NET utilities and base classes.
  7. Overview of Ribbon Features

    develop

    The Actipro Ribbon is an Office-like, multi-tabbed user interface designed to host numerous child controls. It is built to scale its layout and contents dynamically based on available window size, ensuring users have fast access to commands regardless of screen real estate.

    Key features include:

    • Dynamic Layout: Supports multiple layout modes, densities, and automatic resizing/collapsing.
    • Organization: Uses Tabs, Groups, and Control Groups to structure commands.
    • Navigation: Includes a Quick Access Toolbar (QAT), Application Button (with Backstage or Menu support), and Contextual Tabs for object-specific commands.
    • User Experience: Supports Screen Tips (advanced tooltips), Key Tips (keyboard shortcuts), and a Footer for notifications.
    • Customization: Supports serialization to save and restore user-defined ribbon layouts.
  8. Overview of Actipro Avalonia Pro Products

    develop

    Actipro offers several professional-grade commercial control suites for Avalonia:

    • Bars: Provides advanced Office-like ribbon, toolbar, and menu functionality. Includes multiple ribbon layout modes, variant sizing, content-rich galleries, screen tips, key tips, backstage, and MVVM support.
    • Data Visualization: Enables integration of barcodes into applications to streamline data entry and scanning workflows.
    • Docking & MDI: A complete solution for adding docking tool windows and/or Multiple Document Interface (MDI) capabilities to applications.
    • Fundamentals: A collection of advanced utility controls such as settings configuration controls, user prompts, message boxes, info bars, avatars, badges, segmented bars, and progress spinners.
  9. Use the SegmentedBar control

    develop

    The SegmentedBar is a SelectingItemsControl that allows users to select a single item from a set of options, featuring fluent animations during selection changes. It can be arranged horizontally (default) or vertically via the Orientation property.

    xmlns:actipro="http://schemas.actiprosoftware.com/avaloniaui"
    ...
    
    <actipro:SegmentedBar ... >
        <actipro:SegmentedBarItem>Daily</actipro:SegmentedBarItem>
        <actipro:SegmentedBarItem>Weekly</actipro:SegmentedBarItem>
        <actipro:SegmentedBarItem IsEnabled="False">Quarterly</actipro:SegmentedBarItem>
    </actipro:SegmentedBar>