Skip to content

Releases: ghudulf/PleasantUI

v5.2.2

10 Apr 19:19

Choose a tag to compare

What is New

  • NoticeDialog control introduced with localization support and dedicated control theme (NoticeDialog.axaml).
  • New methods in NoticeDialog.cs for displaying various notification types:
    • ShowError(): For error notifications.
    • ShowInfo(): For informational notifications.
    • ShowSuccess(): For success notifications.
    • ShowWarning(): For warning notifications.
    • ShowWorkInProgress(): For progress notifications.
  • ShowProgressBar property added to NoticeDialog for managing progress bar visibility.
  • TitleKey property in NoticeDialog with default value "CardTitle/NoticeDialog".
  • Static Show() factory method for customizable NoticeDialog display.
  • NoticeSeverity enum introduced for classifying severity levels.
  • Events PrimaryButtonClicked and SecondaryButtonClicked launched in NoticeDialog.
  • Extended API in NoticeDialog for additional properties and customization.
  • New control: InstallWizard for step-by-step wizard interface guidance.
  • StatusBorder introduced in InstallWizard.axaml for conditional border display based on StatusMessage.
  • Added ProgressBar control in InstallWizard.axaml with visibility tied to ShowProgressBar.
  • New control: ItemListPanel for item list management and display.
  • TreeViewPanel.cs and ItemListPanel.cs: Added SearchBoxCornerRadius property (and associated Avalonia property) for search box border customization.

Improvements

  • NoticeDialog.axaml.cs:
    • Enhanced OnApplyTemplate() for better templating support.
    • Improved property handling in OnPropertyChanged().
    • Enhanced ReinitializeComponent() method.
    • Severity-based header icons now distinguish notice types visually.
    • Localization applied to various notice dialog properties.
    • Visual presentation of the version badge improved.
  • NoticeDialog.cs:
    • Added properties for expanded dialog customization.
    • Static properties for versioning and severity control.
  • TerminalPanel.cs:
    • General improvements to overall functionality.
    • Added comment for StatusText usage clarity.
    • Increased touch target size by adjusting padding in XAML.
    • Enhanced layout consistency by updating TextBlock padding.
  • CrashReportDialog.axaml: Dynamic binding for CornerRadius in ShadowBorder for improved consistency.
  • StepDialog.axaml: Added and fixed dynamic binding for CornerRadius in ShadowBorder.
  • InstallWizard.axaml: Footer layout updated for better arrangement and visibility.
  • VGUIControlStyles.axaml: New styles defined to set SearchBoxCornerRadius to zero by default for consistency.
  • PleasantSettings.cs:
    • Introduced PleasantVersionType enum to classify UI version.
    • Static Version property retrieves assembly version string.
    • Static InformationalVersion retrieves version information from assembly attributes.
    • Static VersionType provides current PleasantUI version type.
    • VersionTypeDescription offers user-friendly version indications.
  • PleasantUIToolKit.axaml.cs:
    • Added dynamic theme update listener for real-time settings change.
    • Implemented manual update logic for VGUI styling states.
  • PleasantTheme.axaml.cs: Improved theme loading logic with additional checks and logging for reliability.

Bug Fixes

  • TerminalPanel.cs: Resolved rendering bugs causing visual artifacts.
  • CrashReportDialog.axaml: Styling issues fixed, especially for the crash report dialog.
  • VGUIControlThemes.axaml: Corrected corner radius inconsistencies across GUI elements.
  • NoticeDialog.axaml.cs: Fixed improper version badge color assignment.
  • StepDialog.axaml: Corrected the implementation of dynamic binding for corner radius in ShadowBorder.
  • PleasantUIToolKit.axaml.cs:
    • VGUI theme detection fixed via proper event listener for settings updates.
    • Improved error handling in UpdateVGUIStyleManually.

Breaking Changes

  • NoticeDialog.cs: The Title property is now read-only and cannot be set directly.
  • VGUIControlThemes.axaml:
    • Changed from ResourceDictionary to Styles, altering theme resource usage.
    • Theme definitions shifted from ControlTheme to Style, requiring adaptations to theme application code.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

Canary v5.2.2-canary-20260410-202512

10 Apr 20:40
dd20b07

Choose a tag to compare

Pre-release

This is a canary build of PleasantUI (version 5.2.2-canary-20260410-202512, based on 5.2.2) provided exclusively for testing purposes. Canary builds may contain incomplete features, breaking changes, or bugs, and may not be suitable for production deployment. Users are strongly advised to test with caution and report any issues encountered.


What is New

  • No new controls or features have been introduced in this canary release.

Improvements

  • Enhanced workflow permissions and added job summary reporting in .github/workflows/canary-release.yml.
  • Changed permissions for write access to contents and pull-requests in .github/workflows/canary-release.yml.
  • Modified file list to include all paths except sample files in .github/workflows/canary-release.yml.
  • Updated job summaries to note potential PR comment posting issues in .github/workflows/canary-release.yml.
  • Enhanced package publishing to handle push failures gracefully in .github/workflows/canary-release.yml.

Bug Fixes

  • Fixed syntax error in diff filtering regex that caused analysis failure in .github/workflows/canary-release.yml.
  • Fixed file listing issue, ensuring all changed files are accounted for in .github/workflows/canary-release.yml.

Breaking Changes

  • No breaking changes identified in this release.

Example App

  • No changes to the single-file example application included in the canary release artifacts. The example app remains available for validating the canary build.

Packages

This canary release includes:

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

Please test this build carefully, and report any issues or regressions you encounter.

Example App

A single-file example application is included in the canary release artifacts for this build.
Download it from the workflow run page under the "canary-release-artifacts" artifact.

v5.2.1

10 Apr 11:55

Choose a tag to compare

What is New

  • Introduced CrashReportDialog control for user crash reporting in PleasantUI.ToolKit.
  • Added CrashReportResult enum for dialog operation results in CrashReportDialog.
  • Created SendReportEventArgs and SaveReportEventArgs for crash report dialog operations.
  • Defined styled properties for crash report customization.
  • Added DownloadPanel control for managing file downloads, including multi-chunk downloads and progress visualization.
  • Introduced ChunkInfo class representing download chunk status, with ChunkStatus enum for chunk state.
  • Implemented ProgressBrush for chunk progress bar customization and included customizable status text properties in ChunkInfo.
  • Introduced LogViewerPanel control for displaying log entries, with search and filter capabilities.
  • Added LogEntry class with Timestamp, Level, Source, Message, and Details properties for log records.
  • Introduced properties for log viewer control:
    • IsOpen (panel visibility)
    • Title (default "Activity Log")
    • AutoScroll
    • ShowDebugEntries
    • SearchText
    • SelectedLevelFilter
    • SelectedSourceFilter
    • MaxEntries (default 5000)
    • PanelWidth (default 400)
    • Tooltip text properties for actions
    • Entries and FilteredEntries collections
    • LevelFilterOptions and SourceFilterOptions
  • Introduced StepDialog control for presenting numbered steps with step-by-step visuals.
  • Added StepItem class for a single step, with properties:
    • StepNumber
    • IsCompleted
    • IsActive
    • Description
  • Added properties and events to StepDialog:
    • TitleProperty, DescriptionProperty, StatusMessageProperty
    • PrimaryButtonTextProperty, SecondaryButtonTextProperty
    • MinDialogWidthProperty, OpenAnimationProperty, CloseAnimationProperty
    • StepsProperty
    • PrimaryButtonClicked, SecondaryButtonClicked, Closed events
    • ShowAsync and CloseAsync methods

Improvements

  • Enhanced error messaging customization and user input fields in CrashReportDialog.
  • Supported customizable button labels and screenshot inclusion in crash report dialog.
  • Enhanced DownloadPanel and ChunkInfo with change notifications and computed properties for human-readable info.
  • Provided computed Info property for current chunk progress messages.
  • Implemented direct access properties for Tabs and Chunks in DownloadPanel.
  • Updated LogViewerPanel with better filtering, visuals, and defined tooltip properties with clear default texts.
  • Enhanced display and responsiveness of StepDialog and appearance of StepItem using pseudo-classes.
  • Added LogLevel enumeration for log entry severity levels.

Bug Fixes

  • Fixed status indicators not updating during long downloads in DownloadPanel.
  • Resolved incorrect step icons displaying in user interactions for StepDialog.
  • Corrected crash report dialog application version visibility.
  • Fixed crash when log viewer presented without logs.
  • Addressed terminal panel freezing with excessive output lines.
  • Fixed handling of send/save report results in CrashReportDialog.
  • Fixed UI updates for steps when Steps change in StepDialog.

Breaking Changes

  • Renamed ChunkInfoProperties to ChunkInfo in DownloadPanel.
  • Changed Success event to OnDownloadSuccess in DownloadPanel.
  • Altered LogEntry constructor signature and parameters in LogViewerPanel.
  • Updated step title configuration method for new API in StepDialog.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.2.1-fix

10 Apr 12:36

Choose a tag to compare

v5.2.1-fix Pre-release
Pre-release

This is a pre-release build (v5.2.1-fix) of PleasantUI. Features may be incomplete, APIs may change, and experimental elements are present. Please use with caution, and provide feedback as development continues.


What is New

  • Introduces the PleasantUIToolKit class in PleasantUIToolKit.axaml.cs for dynamic VGUI theme loading (preview).
  • Adds UpdateVGUIStyle(bool isVGUI) method to PleasantUIToolKit.axaml.cs for VGUI style updates (experimental).
  • Added multiple control themes for StepItem, CrashReportDialog, and StepDialog to VGUIControlThemes.axaml.

Improvements

  • Adjustments to Package.props for better version handling.
  • Enhanced styling definitions in VGUIControlThemes.axaml to address visual inconsistencies in VGUI controls.
  • Implemented logging in PleasantUIToolKit.axaml.cs for VGUI control themes operations.

Bug Fixes

  • Resolved incorrect theme application affecting control visuals in PleasantTheme.axaml.cs.
  • Corrected VGUI styles update implementation for consistent styling in PleasantTheme.axaml.cs.

Breaking Changes

  • None reported.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.2.0

09 Apr 19:28

Choose a tag to compare

What is New

  • Introduced BreadcrumbBar control for navigation (BreadcrumbBar.cs).
  • Introduced CommandBar control for command management and toolbar functionality (CommandBar.cs).
  • Added file selection features to PathPicker (PathPicker.cs).
  • Implemented DownloadPanel control for download management (DownloadPanel.cs).
  • Introduced LogViewerPanel for real-time log filtering (LogViewerPanel.cs).
  • Introduced StepDialog control for multi-step guidance (StepDialog.cs).
  • Added IsLastItemClickEnabled property for breadcrumb behavior control (BreadcrumbBar.cs).
  • Added ItemClicked event to handle breadcrumb item clicks (BreadcrumbBar.cs).
  • Introduced BreadcrumbBarItem for representing individual breadcrumb segments (BreadcrumbBarItem.cs).
  • Added BreadcrumbBarItemAutomationPeer for accessibility tools (BreadcrumbBarItemAutomationPeer.cs).
  • Introduced BreadcrumbBarItemClickedEventArgs for click event data (BreadcrumbBarItemClickedEventArgs.cs).
  • Created BreadcrumbBarPanel for layout management of breadcrumbs (BreadcrumbBarPanel.cs).
  • Added IsOpen property to CommandBar for managing command bar state.
  • Added IsSticky property to CommandBar for persistent visibility upon light dismiss.
  • Added ClosedDisplayMode property to CommandBar for closed state appearance.
  • Added DefaultLabelPosition property to control command button label placement in CommandBar.
  • Added ItemsAlignment property for aligning primary commands in CommandBar.
  • Added OverflowButtonVisibility property to configure overflow button visibility in CommandBar.
  • Added IsDynamicOverflowEnabled property to support dynamic command overflow in CommandBar.
  • Introduced Opening, Opened, Closing, Closed events for overflow popup lifecycle in CommandBar.
  • Added PrimaryCommands and SecondaryCommands collections to CommandBar.
  • Introduced CommandBarButton control for command actions.
  • Added Icon property to CommandBarButton for button icon geometry.
  • Added Label property to CommandBarButton for text labeling.
  • Added KeyboardAcceleratorText property for shortcut hints in CommandBarButton.
  • Added IsCompact property to CommandBarButton for minimal display.
  • Added IsInOverflow property to CommandBarButton for overflow status.
  • Added DynamicOverflowOrder property to CommandBarButton for ordering.
  • Introduced CommandBarItemsAlignment enum for alignment options.
  • Introduced CommandBarClosedDisplayMode enum for closed state appearance.
  • Introduced CommandBarDefaultLabelPosition enum for label positioning.
  • Introduced CommandBarOverflowButtonVisibility enum for overflow button display.
  • Introduced CommandBarOverflowPresenter for overflow item management in CommandBar.
  • Added CommandBarSeparator for visual separation in toolbars.
  • Introduced IsInOverflowProperty to CommandBarSeparator for overflow status.
  • Added DynamicOverflowOrderProperty to CommandBarSeparator for ordering.
  • Created IsCompactProperty in CommandBarSeparator for compactness control.
  • Introduced CommandBarToggleButton for toggle functionality in toolbars.
  • Added ICommandBarElement interface for command bar element overflow management.

Improvements

  • Enhanced TreeViewPanel item rendering for improved performance (TreeViewPanel.cs).
  • Improved CommandBar with state preservation and enhanced logging (CommandBar.cs).
  • Improved handlers for CollectionChanged events on command collections in CommandBar.
  • Enhanced OnApplyTemplate in CommandBar to restore IsOpen state reliably.
  • Enhanced file filter and binding syntax in PathPicker (PathPicker.cs).
  • Implemented custom BreadcrumbBarPanel for layout of BreadcrumbBar (BreadcrumbBar.cs).
  • Added accessibility management methods for breadcrumb items (BreadcrumbBar.cs).
  • Enhanced keyboard navigation in breadcrumb items (BreadcrumbBar.cs).
  • Improved visibility computation of ellipsis in BreadcrumbBarPanel (BreadcrumbBarPanel.cs).
  • Added IsEllipsisDropDownItem property for ellipsis items in breadcrumbs (BreadcrumbBarItem.cs).
  • Implemented pseudo-classes for visual state management in CommandBarButton.
  • Added properties to CommandBarToggleButton impacting toggle state visuals.

Bug Fixes

  • Fixed selection errors when null file list items occur in PathPicker (PathPicker.cs).
  • Resolved tray popup icon rendering issues in dual-mode for PleasantTrayPopup (PleasantTrayPopup.cs).
  • Improved file picker debug logging traceability (PleasantFileChooser.cs).
  • Corrected file format processing for patterns in PleasantFileChooserViewModel.cs.
  • Resolved ItemsSource unsubscribe issues on change in BreadcrumbBar (BreadcrumbBar.cs).
  • Fixed visual property reset for the last breadcrumb item.
  • Addressed resource finding issues for BreadcrumbBarItem (BreadcrumbBarItem.cs).
  • Fixed IsOpen state restoration after template reapplication in CommandBar.
  • Corrected event subscription in CommandBar to avoid memory leaks.
  • Button clicks in overflow now close the parent CommandBar.

Breaking Changes

  • Changed ShowTitle property in CommandBar to read-only.
  • Changed FilteredEntries in LogViewerPanel to use AvaloniaList<LogEntry>.
  • Updated Chunks property in DownloadPanel to AvaloniaList<ChunkInfo>.
  • Revised Index property in BreadcrumbBar to read-only.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.1.3-alpha3-fix

08 Apr 19:06

Choose a tag to compare

v5.1.3-alpha3-fix Pre-release
Pre-release

Pre-release Notice:
This is a pre-release build (v5.1.3-alpha3-fix) of PleasantUI. Features may be incomplete, APIs may change, and some components are experimental or in preview. Please review all changes carefully before updating.


What is New

  • Added PleasantDatePicker control for date selection and improved theme control.
  • Introduced PleasantTrayPopup with VGUI theme support (experimental).
  • New PleasantMiniWindow control with localization support (preview).
  • Implemented stable wrapper controls with layout management in NavigationView.
  • Introduced content caching and restoration in NavigationView.
  • Included navigation bar positioning in NavigationView.
  • Introduced NavigationViewPosition enum for pane positions.
  • Created ButtonsPanelOffsetProperty for button panel positioning.
  • Added PositionProperty for navigation pane positioning.
  • Added TopItemsProperty and BottomItemsProperty for navigation bar items.
  • Added Compact title bar style for minimal space (experimental).
  • Introduced ProgressBarWrapper to PleasantDialog for animated height feedback.
  • Introduced _onDialogReady callback for dialog layout completion in PleasantDialog.
  • Added SetProgressBarState method for managing progress bar state in PleasantDialog.

Improvements

  • Enabled auto-sync of ButtonsPanelOffset with TitleBarType in NavigationView.
  • Added dynamic titlebar clearance and buttons panel offset to NavigationView.
  • Enhanced titlebar height handling in NavigationView.
  • Enhanced layout by modifying grid row definitions in PleasantDialog.
  • Refactored progress bar layout in PleasantDialog for better user interaction.
  • Clarified Opened event documentation in PleasantDialog and specified onDialogReady call after layout completion.
  • Added customizable footer option in PleasantDialog's Show method.
  • Set CornerRadius to zero for "VGUI" theme dialogs.
  • Enhanced VGUI theme support for consistency across PleasantUI controls.
  • Added VGUI theme support for PleasantDatePicker.
  • Improved VGUI support for NavigationView.
  • Changed Data property bindings to {DynamicResource ...} for icons in DataGrid, ThemeColorItemTemplate, MessageBox, ColorSlider, ColorView, PleasantMenu, PleasantTitleBar, ThemeEditorWindow, and PleasantDialogStyle.
  • Modified Theme bindings for various controls to {DynamicResource ...} (DataGrid, MessageBox, ThemeEditorWindow, ColorSlider).
  • Changed CornerRadius binding of borders and other elements to {DynamicResource ...} for better theming (ThemeColorItemTemplate, ThemeEditorWindow).
  • Updated Background binding for borders and layout elements to {DynamicResource ...} (ThemeColorItemTemplate, ColorSlider).
  • Changed StaticResource references to DynamicResource for styling updates in PleasantDialog.
  • Updated layout based on LeftClearance width in PleasantTitleBar.
  • Introduced LeftClearanceProperty and public LeftClearance getter/setter in PleasantTitleBar.
  • Updated PleasantTitleBar layout to respond to LeftClearance.
  • Changed Icon type to DynamicResource for menu items and footer items in PleasantMenu.
  • Updated PseudoClasses in NavigationView to include :left, :top, and :bottom.
  • Enhanced handling of top and bottom navigation items in NavigationView.
  • Subscribed NavigationView layout updates to ButtonsPanelOffsetProperty changes.
  • Improved y-axis layout synchronization with NavigationView.Position changes.

Bug Fixes

  • Fixed layout refresh issue when switching titlebar types in NavigationView.
  • Fixed button panel overlap with title bar using ButtonsPanelOffset in NavigationView.
  • Resolved visual tree violations during template application in NavigationView.
  • Fixed layout issues with LeftClearance property responsiveness in PleasantTitleBar.
  • Corrected blank progress bar display issue in ProgressBarIndicatorConverter.
  • Fixed alignment issues between body and footer in PleasantDialog.
  • Fixed progress bar visibility logic for animation in PleasantDialog.
  • Corrected button-click event attachment for dialog footers in PleasantDialog.
  • Ensured message box displays square corners in "VGUI" mode.

Breaking Changes

  • NavigationView.Items collection is deprecated; use TopItems and BottomItems.
  • Changed left column width in PleasantTitleBar to use LeftClearance property.
  • Changed ShowTitle property in NavigationView to return constant true.
  • Renamed RefreshContent to ReinitializeComponent in NavigationView.
  • Changed SetTitle in NavigationView to use TitleKey for titles.
  • Changed layout for SmoothScrollViewer in PleasantDialog, affecting element positioning.
  • Changed onDialogReady context in PleasantDialog to after layout completion.
  • Changed SetProgressBarState method in PleasantDialog for clearer functionality.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.1.3-alpha3

08 Apr 11:48

Choose a tag to compare

v5.1.3-alpha3 Pre-release
Pre-release

Pre-Release Notice

This is a pre-release build (v5.1.3-alpha3) of PleasantUI. Features, APIs, and behaviors may be incomplete or subject to change. Experimental features and previews are present; exercise caution before deploying or building atop these interfaces.


What is New

  • InstallWizard.axaml: Introduces a three-column grid layout for the Install Wizard, with a right border column (preview).
  • InstallWizard.axaml: Adds animations for checkmark visibility and scaling upon success (experimental).
  • NavigationView.cs: Expanded state is now preserved across sessions.
  • NavigationView.cs: Adds new method OnIsOpenChanged to manage state changes on open/close events.
  • PleasantDrawer.cs: Adds new properties PanelWidthProperty and PanelHeightProperty for panel sizing.
  • ThemeEditorWindow.axaml: Adds new geometry for "AlertOutline" icons.
  • ContrastBrushConverter.cs: Introduces ContrastBrushConverter for high-contrast brush conversion (experimental).
  • PleasantTheme.axaml.cs: Introduces _vguiStyleInclude for dynamic VGUI control styles (experimental).
  • NavigationViewItem.cs: Introduces debugging statements for NavigationViewItem events (experimental).

Improvements

  • InstallWizard.cs: Improved layout structure, styling consistency, and overall aesthetic/functions; updated PleasantWindow instantiation with size constraints.
  • InstallWizard.axaml: Updated wizard step ItemTemplate for visual improvements and enhanced styling of completed step indicators with new color schemes.
  • InstallWizard.cs: Changed Progress and CurrentStep to use auto-implemented properties; removed backing fields for these properties.
  • PleasantDrawer.cs: Introduced CLR accessors for PanelWidth and PanelHeight properties; removed confusing comment about alignment method.
  • NavigationView.cs: Improved pane collapse handling for better interaction. Introduced _expandedStates dictionary for tracking expanded states.
  • ThemeService.cs: Enhanced dynamic style loading; added initial support for VGUI theme (experimental).
  • PleasantDialog.axaml.cs: Enhanced Danger message box background with a gradient; improved gradient rendering.
  • ColorPickerWindow.axaml, ThemeColorItemTemplate.axaml, ThemeEditorWindow.axaml: Updated button theme to support runtime changes and dynamic theme updates, using DynamicResource.
  • ProgressBar.axaml: Defined additional styles for border indicators on transitions (experimental).
  • FlyoutPresenter.axaml: Added shadow animation effect for ShadowBorder, duration 0.2 seconds (experimental).
  • TextBox.axaml: Updated ClearTextBox button themes to use DynamicResource.
  • DatePicker.axaml, TimePicker.axaml: Updated accept and dismiss button themes to DynamicResource.
  • ContentDialog.axaml: Updated OK button theme to use DynamicResource.
  • ShadowBorder.cs: Modified CreateShadowBitmap to include opacity parameter.
  • NavigationViewItem.cs: Added logging to OnOpened, OnClosed, and other events (experimental).
  • PopConfirm.cs: Changed event handler from InputElement.GotFocusEvent to GotFocusEvent; changed from InputElement.LostFocusEvent to LostFocusEvent.
  • SmoothScrollContentPresenter.cs: Changed event handler from InputElement.ScrollGestureEvent to ScrollGestureEvent.
  • PleasantTheme.axaml: Merged VGUIControlThemes.axaml resource dictionary to PleasantTheme (experimental).

Bug Fixes

  • InstallWizard.cs: Fixed appearance and visual inconsistencies of icons (rendering issues now resolved).
  • NavigationView.cs: Fixed first item not highlighted after loading.
  • NavigationView.cs: Prevented expanded state corruption by ignoring zero-size bounds.
  • InstallWizard.axaml: Fixed incorrect rendering of warning state icon due to binding issue.
  • ShadowBorder.cs: Fixed shadow drawing issues; ensures opacity is greater than 0.001 before drawing.
  • NavigationViewItem.cs: Fixed pane state not closing in CompactOverlay/Overlay modes.

Breaking Changes

  • InstallWizard.cs: New method signature for public override void Initialize().
  • InstallWizard.cs: New properties PanelHeightProperty and PanelWidthProperty.
  • InstallWizard.cs: Removed backing fields for Progress and CurrentStep; changed their setters to auto-implemented properties.
  • InstallWizard.axaml: Adjusted Grid.ColumnDefinitions, adding a right border column.
  • ThemeEditorWindow.axaml: Updated button theme properties to use DynamicResource.
  • ModalWindowHost.cs: Removed unused namespace which may affect previous use.
  • NavigationViewItem.cs: Removed synchronization logic in SyncInlineItemsPresenterVisibility().
  • ShadowBorder.cs: Changed CreateShadowBitmap to require an opacity argument.
  • PleasantTheme.axaml.cs: Changed SelectedCustomTheme from a backing field to an auto-implemented property.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.1.3-alpha2-fix

04 Apr 12:30

Choose a tag to compare

v5.1.3-alpha2-fix Pre-release
Pre-release

This is a pre-release build (v5.1.3-alpha2-fix) of PleasantUI. Features may be incomplete and APIs are subject to change. This version introduces new navigation components and related enhancements, with several improvements and fixes—some features remain experimental or in-progress.

What is New

  • Introduces NavigationViewItem for hierarchical navigation scenarios.
  • Introduces sub-menu functionality in NavigationView. (experimental)
  • NavigationViewSubMenuControl: New control hosting submenu items for NavigationViewItem popups. (experimental)

Improvements

  • NavigationViewItem:
    • Added method for item container creation in NavigationView.
    • Implemented checking for container requirements of navigation items.
    • Added a method to clear item containers in NavigationView.
    • Enhanced application of control template for NavigationViewItem.
    • Prepares item containers before display.
    • Introduced databinding for NavigationView reference in NavigationViewItem.
    • Introduced databinding for nested NavigationViewItem references.
    • Added a NavigationView property for accessing the parent navigation control.
  • NavigationViewSubMenuControl:
    • Added property for associating with the parent NavigationViewItem.
  • NavigationViewItem.axaml:
    • Replaced ItemsPresenter with NavigationViewSubMenuControl for improved submenu rendering.

Bug Fixes

  • CI/CD:
    • Fixed build.yml workflow step success checks to improve continuous integration reliability.
    • Updated release.yml publish conditions for more accurate release outcomes.
  • NavigationViewItem:
    • Fixed property copying for submenu item cloning.
    • Addressed popup submenu navigation issues when outside the logical tree.

Breaking Changes

  • None identified in this release batch.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.1.3-alpha2

03 Apr 20:23

Choose a tag to compare

v5.1.3-alpha2 Pre-release
Pre-release

PleasantUI v5.1.3-alpha2 Pre-release

This is a pre-release build. Features may be incomplete, and APIs are subject to change. See below for the latest additions, improvements, and fixes. Some features are introduced as (experimental) or (preview) and may evolve in future releases.


What is New

  • SelectionList control (experimental):
    • Added to src/PleasantUI/Controls/SelectionList/SelectionList.cs, enables dynamic selectable items.
    • Introduced binding properties for item customization and selection.
    • Added ImageTemplateProperty for custom image rendering of items.
    • Introduced EmptyMessageProperty to display messages when no items are available.
    • Included DestinationIndex for improved item navigation.
    • New method for custom button content registration.
  • SelectionListItem control (experimental):
    • Introduced in SelectionList.axaml with customizable templates.
  • SelectionList control (preview):
    • Featured in SelectionList.axaml, supports multiple items and empty states.
  • NavigationView enhancements:
    • src/PleasantUI/Controls/NavigationView/NavigationView.cs now provides improved item selection management and consistency.

Improvements

  • SelectionList control (experimental):
    • Example usage updated for dynamic item generation.
  • SelectionListItem theme (preview):
    • Enhanced with transitions and interaction states for better user experience.
    • Allowed scrolling configuration for improved usability.
  • NavigationView control:
    • Improved item selection consistency.
  • PleasantTheme initialization:
    • Deferred language initialization for enhanced performance.

Bug Fixes

  • NavigationView control:
    • Fixed selection state management of leaf items.
    • Fixed clipping issue that affected text visibility.
  • SelectionListItem:
    • Resolved visibility issues in SelectionListItem elements.

Breaking Changes

  • PleasantTheme.axaml.cs:
    • Changed ReinitializeComponent() implementation, affecting initialization sequence.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit

v5.1.3-alpha1

03 Apr 14:58

Choose a tag to compare

v5.1.3-alpha1 Pre-release
Pre-release

PleasantUI v5.1.3-alpha1 Release Notes

Pre-release: This build (v5.1.3-alpha1) is a pre-release. Features may be incomplete and APIs are subject to change. Some items are experimental or in progress.


What is New

  • DockArea.cs: Added a comprehensive docking system with resizable panels (preview).
  • DockArea.cs: Introduced DockArea control for dock area representation (preview).
  • DockArea.cs: Added LocationProperty for dock area location.
  • DockArea.cs: Added ViewProperty property.
  • DockArea.cs: Added SideBarProperty property.
  • DockArea.cs: Added TargetProperty for dock area target name.
  • DockArea.cs: Added LocalizedNameProperty for dock area localized name.
  • DockAreaDragDropBehavior.cs: Introduced DockAreaDragDropBehavior for dock drag-and-drop functionality (preview).
  • DockAreaLocation.cs: Added DockAreaLocation record for docking locations.
  • DockableDisplayMode.cs: Created DockableDisplayMode enumeration for display modes.
  • PathPicker.cs: Introduced PathPicker control for selecting files and folders (preview).
  • PleasantFileChooser.cs: Added PleasantFileChooser as a custom file picker UI (preview).
  • PleasantDrawer.cs: Introduced PleasantDrawer control for drawer-style panels (preview).
  • PopConfirm.cs: Added PopConfirm control for confirmation dialogs (preview).
  • PleasantCaptionButtons.cs: Added full-screen button with PART_FullScreenButton.
  • PleasantCaptionButtons.cs: Provided OnToggleFullScreen() method for window state toggling.
  • PleasantTitleBar.cs: Added IsTitleVisible property for title panel visibility.
  • PleasantTitleBar.cs: Added IsTitleBarHitTestVisibleProperty for drag area hit-testing.
  • HorizontallySplittedView.cs: Introduced HorizontallySplittedView control with resizable divider (experimental).
  • IDockAreaView.cs: Introduced IDockAreaView interface for managing dock areas (experimental).
  • NamedColumnDefinition.cs: Added NamedColumnDefinition class for column definitions (experimental).
  • NamedColumnDefinition.cs: Added Name property.
  • ObservableHelper.cs: Created ObservableHelper class for observable methods (experimental).
  • OverflowLayoutView.cs: Introduced OverflowLayoutView control for managing overflow of items (experimental).
  • OverflowLayoutView.cs: Added ItemsSource property.
  • OverflowLayoutView.cs: Added ItemTemplate property.
  • OverflowLayoutView.cs: Added MenuItemTemplate property.
  • OverflowLayoutView.cs: Added Orientation property.
  • OverflowLayoutView.cs: Added Spacing property.
  • OverflowLayoutView.cs: Added Button property for the overflow button.
  • PointThicknessConversion.cs: Added PointThicknessConversion static class for point conversions (experimental).
  • ReDock.cs: Introduced ReDock three-pane docking control with grid layout (experimental).
  • ReDock.cs: Added left, center, and right content/template/width proportion properties:
    • LeftContent, LeftContentTemplate, LeftWidthProportion
    • Content, ContentTemplate, WidthProportion
    • RightContent, RightContentTemplate, RightWidthProportion
  • ReDockHost.cs: Introduced ReDockHost as the main host control for docking (experimental).
  • ReDockHost.cs: Added LeftSideBar, RightSideBar, MainContent, MainContentTemplate.
  • ReDockHost.cs: Added LeftSideBarWidth, RightSideBarWidth.
  • ReDockHost.cs: Added IsFloatingEnabled property.
  • ReDockHost.cs: Added ButtonMove event for moving buttons between sidebars.
  • ReDockHost.cs: Added ButtonDisplayModeChanged event.
  • ReDockHost.cs: Added ButtonFlyoutRequested event.

Improvements

  • PathPicker.cs: Enhanced layout and styling for PathPicker control.
  • PleasantFileChooser.cs: Added customizable properties for improved usability.
  • PleasantCaptionButtons.cs: Updated full-screen button visibility logic based on state.
  • PleasantTitleBar.cs: Enhanced title bar visibility handling with new properties.
  • ContentDialog.cs: Refactored animation handling, including error logging for exceptions.
  • DockAreaLocation.cs: Added Parse method to convert string to DockAreaLocation.
  • ObservableHelper.cs: Enhanced visibility tracking for child controls.
  • OverflowLayoutView.cs: Initialized items control and button presenter during template application.
  • OverflowLayoutView.cs: Updated internal items on property changes.
  • OverflowLayoutView.cs: Improved layout calculations in MeasureOverride.
  • ReDock.cs: Adjusted column widths based on side pane visibility.
  • ReDockHost.cs: Implemented drag resizing for left and right sidebars.

Bug Fixes

  • PathPicker.cs: Fixed animation issues with null references, added error handling.
  • ContentDialog.cs: Fixed null reference exception with pre-animation null checks.
  • PleasantTitleBar.cs: Corrected PseudoClass logic for active states based on window state.
  • DockAreaDragDropBehavior.cs: Fixed drag-and-drop handling for missing SideBarButton format.
  • OverflowLayoutView.cs: Fixed dynamic measure updates for ItemsSource.
  • OverflowLayoutView.cs: Corrected size cache clearing in UpdateItemsSource.
  • ReDock.cs: Fixed visibility logic for collapsing side panels.

Breaking Changes

  • None in this pre-release.

Packages

  • PleasantUI
  • PleasantUI.DataGrid
  • PleasantUI.MaterialIcons
  • PleasantUI.ToolKit