Releases: ghudulf/PleasantUI
v5.2.2
What is New
NoticeDialogcontrol introduced with localization support and dedicated control theme (NoticeDialog.axaml).- New methods in
NoticeDialog.csfor displaying various notification types:ShowError(): For error notifications.ShowInfo(): For informational notifications.ShowSuccess(): For success notifications.ShowWarning(): For warning notifications.ShowWorkInProgress(): For progress notifications.
ShowProgressBarproperty added toNoticeDialogfor managing progress bar visibility.TitleKeyproperty inNoticeDialogwith default value "CardTitle/NoticeDialog".- Static
Show()factory method for customizableNoticeDialogdisplay. NoticeSeverityenum introduced for classifying severity levels.- Events
PrimaryButtonClickedandSecondaryButtonClickedlaunched inNoticeDialog. - Extended API in
NoticeDialogfor additional properties and customization. - New control:
InstallWizardfor step-by-step wizard interface guidance. StatusBorderintroduced inInstallWizard.axamlfor conditional border display based onStatusMessage.- Added
ProgressBarcontrol inInstallWizard.axamlwith visibility tied toShowProgressBar. - New control:
ItemListPanelfor item list management and display. TreeViewPanel.csandItemListPanel.cs: AddedSearchBoxCornerRadiusproperty (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.
- Enhanced
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
StatusTextusage clarity. - Increased touch target size by adjusting padding in XAML.
- Enhanced layout consistency by updating
TextBlockpadding.
CrashReportDialog.axaml: Dynamic binding forCornerRadiusinShadowBorderfor improved consistency.StepDialog.axaml: Added and fixed dynamic binding forCornerRadiusinShadowBorder.InstallWizard.axaml: Footer layout updated for better arrangement and visibility.VGUIControlStyles.axaml: New styles defined to setSearchBoxCornerRadiusto zero by default for consistency.PleasantSettings.cs:- Introduced
PleasantVersionTypeenum to classify UI version. - Static
Versionproperty retrieves assembly version string. - Static
InformationalVersionretrieves version information from assembly attributes. - Static
VersionTypeprovides current PleasantUI version type. VersionTypeDescriptionoffers user-friendly version indications.
- Introduced
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 inShadowBorder.PleasantUIToolKit.axaml.cs:- VGUI theme detection fixed via proper event listener for settings updates.
- Improved error handling in
UpdateVGUIStyleManually.
Breaking Changes
NoticeDialog.cs: TheTitleproperty is now read-only and cannot be set directly.VGUIControlThemes.axaml:- Changed from
ResourceDictionarytoStyles, altering theme resource usage. - Theme definitions shifted from
ControlThemetoStyle, requiring adaptations to theme application code.
- Changed from
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
Canary v5.2.2-canary-20260410-202512
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:
PleasantUIPleasantUI.DataGridPleasantUI.MaterialIconsPleasantUI.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
What is New
- Introduced
CrashReportDialogcontrol for user crash reporting inPleasantUI.ToolKit. - Added
CrashReportResultenum for dialog operation results inCrashReportDialog. - Created
SendReportEventArgsandSaveReportEventArgsfor crash report dialog operations. - Defined styled properties for crash report customization.
- Added
DownloadPanelcontrol for managing file downloads, including multi-chunk downloads and progress visualization. - Introduced
ChunkInfoclass representing download chunk status, withChunkStatusenum for chunk state. - Implemented
ProgressBrushfor chunk progress bar customization and included customizable status text properties inChunkInfo. - Introduced
LogViewerPanelcontrol for displaying log entries, with search and filter capabilities. - Added
LogEntryclass withTimestamp,Level,Source,Message, andDetailsproperties for log records. - Introduced properties for log viewer control:
IsOpen(panel visibility)Title(default "Activity Log")AutoScrollShowDebugEntriesSearchTextSelectedLevelFilterSelectedSourceFilterMaxEntries(default 5000)PanelWidth(default 400)- Tooltip text properties for actions
EntriesandFilteredEntriescollectionsLevelFilterOptionsandSourceFilterOptions
- Introduced
StepDialogcontrol for presenting numbered steps with step-by-step visuals. - Added
StepItemclass for a single step, with properties:StepNumberIsCompletedIsActiveDescription
- Added properties and events to
StepDialog:TitleProperty,DescriptionProperty,StatusMessagePropertyPrimaryButtonTextProperty,SecondaryButtonTextPropertyMinDialogWidthProperty,OpenAnimationProperty,CloseAnimationPropertyStepsPropertyPrimaryButtonClicked,SecondaryButtonClicked,ClosedeventsShowAsyncandCloseAsyncmethods
Improvements
- Enhanced error messaging customization and user input fields in
CrashReportDialog. - Supported customizable button labels and screenshot inclusion in crash report dialog.
- Enhanced
DownloadPanelandChunkInfowith change notifications and computed properties for human-readable info. - Provided computed
Infoproperty for current chunk progress messages. - Implemented direct access properties for
TabsandChunksinDownloadPanel. - Updated
LogViewerPanelwith better filtering, visuals, and defined tooltip properties with clear default texts. - Enhanced display and responsiveness of
StepDialogand appearance ofStepItemusing pseudo-classes. - Added
LogLevelenumeration 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
Stepschange inStepDialog.
Breaking Changes
- Renamed
ChunkInfoPropertiestoChunkInfoinDownloadPanel. - Changed
Successevent toOnDownloadSuccessinDownloadPanel. - Altered
LogEntryconstructor signature and parameters inLogViewerPanel. - Updated step title configuration method for new API in
StepDialog.
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
v5.2.1-fix
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
PleasantUIToolKitclass inPleasantUIToolKit.axaml.csfor dynamic VGUI theme loading (preview). - Adds
UpdateVGUIStyle(bool isVGUI)method toPleasantUIToolKit.axaml.csfor VGUI style updates (experimental). - Added multiple control themes for
StepItem,CrashReportDialog, andStepDialogtoVGUIControlThemes.axaml.
Improvements
- Adjustments to
Package.propsfor better version handling. - Enhanced styling definitions in
VGUIControlThemes.axamlto address visual inconsistencies in VGUI controls. - Implemented logging in
PleasantUIToolKit.axaml.csfor 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
What is New
- Introduced
BreadcrumbBarcontrol for navigation (BreadcrumbBar.cs). - Introduced
CommandBarcontrol for command management and toolbar functionality (CommandBar.cs). - Added file selection features to
PathPicker(PathPicker.cs). - Implemented
DownloadPanelcontrol for download management (DownloadPanel.cs). - Introduced
LogViewerPanelfor real-time log filtering (LogViewerPanel.cs). - Introduced
StepDialogcontrol for multi-step guidance (StepDialog.cs). - Added
IsLastItemClickEnabledproperty for breadcrumb behavior control (BreadcrumbBar.cs). - Added
ItemClickedevent to handle breadcrumb item clicks (BreadcrumbBar.cs). - Introduced
BreadcrumbBarItemfor representing individual breadcrumb segments (BreadcrumbBarItem.cs). - Added
BreadcrumbBarItemAutomationPeerfor accessibility tools (BreadcrumbBarItemAutomationPeer.cs). - Introduced
BreadcrumbBarItemClickedEventArgsfor click event data (BreadcrumbBarItemClickedEventArgs.cs). - Created
BreadcrumbBarPanelfor layout management of breadcrumbs (BreadcrumbBarPanel.cs). - Added
IsOpenproperty toCommandBarfor managing command bar state. - Added
IsStickyproperty toCommandBarfor persistent visibility upon light dismiss. - Added
ClosedDisplayModeproperty toCommandBarfor closed state appearance. - Added
DefaultLabelPositionproperty to control command button label placement inCommandBar. - Added
ItemsAlignmentproperty for aligning primary commands inCommandBar. - Added
OverflowButtonVisibilityproperty to configure overflow button visibility inCommandBar. - Added
IsDynamicOverflowEnabledproperty to support dynamic command overflow inCommandBar. - Introduced
Opening,Opened,Closing,Closedevents for overflow popup lifecycle inCommandBar. - Added
PrimaryCommandsandSecondaryCommandscollections toCommandBar. - Introduced
CommandBarButtoncontrol for command actions. - Added
Iconproperty toCommandBarButtonfor button icon geometry. - Added
Labelproperty toCommandBarButtonfor text labeling. - Added
KeyboardAcceleratorTextproperty for shortcut hints inCommandBarButton. - Added
IsCompactproperty toCommandBarButtonfor minimal display. - Added
IsInOverflowproperty toCommandBarButtonfor overflow status. - Added
DynamicOverflowOrderproperty toCommandBarButtonfor ordering. - Introduced
CommandBarItemsAlignmentenum for alignment options. - Introduced
CommandBarClosedDisplayModeenum for closed state appearance. - Introduced
CommandBarDefaultLabelPositionenum for label positioning. - Introduced
CommandBarOverflowButtonVisibilityenum for overflow button display. - Introduced
CommandBarOverflowPresenterfor overflow item management inCommandBar. - Added
CommandBarSeparatorfor visual separation in toolbars. - Introduced
IsInOverflowPropertytoCommandBarSeparatorfor overflow status. - Added
DynamicOverflowOrderPropertytoCommandBarSeparatorfor ordering. - Created
IsCompactPropertyinCommandBarSeparatorfor compactness control. - Introduced
CommandBarToggleButtonfor toggle functionality in toolbars. - Added
ICommandBarElementinterface for command bar element overflow management.
Improvements
- Enhanced
TreeViewPanelitem rendering for improved performance (TreeViewPanel.cs). - Improved
CommandBarwith state preservation and enhanced logging (CommandBar.cs). - Improved handlers for
CollectionChangedevents on command collections inCommandBar. - Enhanced
OnApplyTemplateinCommandBarto restoreIsOpenstate reliably. - Enhanced file filter and binding syntax in
PathPicker(PathPicker.cs). - Implemented custom
BreadcrumbBarPanelfor layout ofBreadcrumbBar(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
IsEllipsisDropDownItemproperty for ellipsis items in breadcrumbs (BreadcrumbBarItem.cs). - Implemented pseudo-classes for visual state management in
CommandBarButton. - Added properties to
CommandBarToggleButtonimpacting 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
ItemsSourceunsubscribe issues on change inBreadcrumbBar(BreadcrumbBar.cs). - Fixed visual property reset for the last breadcrumb item.
- Addressed resource finding issues for
BreadcrumbBarItem(BreadcrumbBarItem.cs). - Fixed
IsOpenstate restoration after template reapplication inCommandBar. - Corrected event subscription in
CommandBarto avoid memory leaks. - Button clicks in overflow now close the parent
CommandBar.
Breaking Changes
- Changed
ShowTitleproperty inCommandBarto read-only. - Changed
FilteredEntriesinLogViewerPanelto useAvaloniaList<LogEntry>. - Updated
Chunksproperty inDownloadPaneltoAvaloniaList<ChunkInfo>. - Revised
Indexproperty inBreadcrumbBarto read-only.
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
v5.1.3-alpha3-fix
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
PleasantDatePickercontrol for date selection and improved theme control. - Introduced
PleasantTrayPopupwith VGUI theme support (experimental). - New
PleasantMiniWindowcontrol 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
NavigationViewPositionenum for pane positions. - Created
ButtonsPanelOffsetPropertyfor button panel positioning. - Added
PositionPropertyfor navigation pane positioning. - Added
TopItemsPropertyandBottomItemsPropertyfor navigation bar items. - Added
Compacttitle bar style for minimal space (experimental). - Introduced
ProgressBarWrapperto PleasantDialog for animated height feedback. - Introduced
_onDialogReadycallback for dialog layout completion in PleasantDialog. - Added
SetProgressBarStatemethod for managing progress bar state in PleasantDialog.
Improvements
- Enabled auto-sync of
ButtonsPanelOffsetwithTitleBarTypeinNavigationView. - 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
Openedevent documentation in PleasantDialog and specifiedonDialogReadycall after layout completion. - Added customizable footer option in PleasantDialog's
Showmethod. - Set
CornerRadiusto 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
Dataproperty bindings to{DynamicResource ...}for icons in DataGrid, ThemeColorItemTemplate, MessageBox, ColorSlider, ColorView, PleasantMenu, PleasantTitleBar, ThemeEditorWindow, and PleasantDialogStyle. - Modified
Themebindings for various controls to{DynamicResource ...}(DataGrid, MessageBox, ThemeEditorWindow, ColorSlider). - Changed
CornerRadiusbinding of borders and other elements to{DynamicResource ...}for better theming (ThemeColorItemTemplate, ThemeEditorWindow). - Updated
Backgroundbinding for borders and layout elements to{DynamicResource ...}(ThemeColorItemTemplate, ColorSlider). - Changed
StaticResourcereferences toDynamicResourcefor styling updates in PleasantDialog. - Updated layout based on
LeftClearancewidth in PleasantTitleBar. - Introduced
LeftClearancePropertyand publicLeftClearancegetter/setter in PleasantTitleBar. - Updated PleasantTitleBar layout to respond to
LeftClearance. - Changed
Icontype toDynamicResourcefor menu items and footer items in PleasantMenu. - Updated PseudoClasses in
NavigationViewto include:left,:top, and:bottom. - Enhanced handling of top and bottom navigation items in
NavigationView. - Subscribed
NavigationViewlayout updates toButtonsPanelOffsetPropertychanges. - Improved y-axis layout synchronization with
NavigationView.Positionchanges.
Bug Fixes
- Fixed layout refresh issue when switching titlebar types in
NavigationView. - Fixed button panel overlap with title bar using
ButtonsPanelOffsetinNavigationView. - Resolved visual tree violations during template application in
NavigationView. - Fixed layout issues with
LeftClearanceproperty responsiveness inPleasantTitleBar. - 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.Itemscollection is deprecated; useTopItemsandBottomItems.- Changed left column width in PleasantTitleBar to use
LeftClearanceproperty. - Changed
ShowTitleproperty inNavigationViewto return constanttrue. - Renamed
RefreshContenttoReinitializeComponentinNavigationView. - Changed
SetTitleinNavigationViewto useTitleKeyfor titles. - Changed layout for
SmoothScrollViewerin PleasantDialog, affecting element positioning. - Changed
onDialogReadycontext in PleasantDialog to after layout completion. - Changed
SetProgressBarStatemethod in PleasantDialog for clearer functionality.
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
v5.1.3-alpha3
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 methodOnIsOpenChangedto manage state changes on open/close events.PleasantDrawer.cs: Adds new propertiesPanelWidthPropertyandPanelHeightPropertyfor panel sizing.ThemeEditorWindow.axaml: Adds new geometry for "AlertOutline" icons.ContrastBrushConverter.cs: Introduces ContrastBrushConverter for high-contrast brush conversion (experimental).PleasantTheme.axaml.cs: Introduces_vguiStyleIncludefor 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; updatedPleasantWindowinstantiation 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: ChangedProgressandCurrentStepto use auto-implemented properties; removed backing fields for these properties.PleasantDrawer.cs: Introduced CLR accessors forPanelWidthandPanelHeightproperties; removed confusing comment about alignment method.NavigationView.cs: Improved pane collapse handling for better interaction. Introduced_expandedStatesdictionary 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, usingDynamicResource.ProgressBar.axaml: Defined additional styles for border indicators on transitions (experimental).FlyoutPresenter.axaml: Added shadow animation effect forShadowBorder, duration 0.2 seconds (experimental).TextBox.axaml: Updated ClearTextBox button themes to useDynamicResource.DatePicker.axaml,TimePicker.axaml: Updated accept and dismiss button themes toDynamicResource.ContentDialog.axaml: Updated OK button theme to useDynamicResource.ShadowBorder.cs: ModifiedCreateShadowBitmapto include opacity parameter.NavigationViewItem.cs: Added logging toOnOpened,OnClosed, and other events (experimental).PopConfirm.cs: Changed event handler fromInputElement.GotFocusEventtoGotFocusEvent; changed fromInputElement.LostFocusEventtoLostFocusEvent.SmoothScrollContentPresenter.cs: Changed event handler fromInputElement.ScrollGestureEventtoScrollGestureEvent.PleasantTheme.axaml: MergedVGUIControlThemes.axamlresource 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 forpublic override void Initialize().InstallWizard.cs: New propertiesPanelHeightPropertyandPanelWidthProperty.InstallWizard.cs: Removed backing fields forProgressandCurrentStep; changed their setters to auto-implemented properties.InstallWizard.axaml: AdjustedGrid.ColumnDefinitions, adding a right border column.ThemeEditorWindow.axaml: Updated button theme properties to useDynamicResource.ModalWindowHost.cs: Removed unused namespace which may affect previous use.NavigationViewItem.cs: Removed synchronization logic inSyncInlineItemsPresenterVisibility().ShadowBorder.cs: ChangedCreateShadowBitmapto require an opacity argument.PleasantTheme.axaml.cs: ChangedSelectedCustomThemefrom a backing field to an auto-implemented property.
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
v5.1.3-alpha2-fix
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
NavigationViewItemfor hierarchical navigation scenarios. - Introduces sub-menu functionality in
NavigationView. (experimental) NavigationViewSubMenuControl: New control hosting submenu items forNavigationViewItempopups. (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
NavigationViewreference inNavigationViewItem. - Introduced databinding for nested
NavigationViewItemreferences. - Added a
NavigationViewproperty for accessing the parent navigation control.
- Added method for item container creation in
NavigationViewSubMenuControl:- Added property for associating with the parent
NavigationViewItem.
- Added property for associating with the parent
NavigationViewItem.axaml:- Replaced
ItemsPresenterwithNavigationViewSubMenuControlfor improved submenu rendering.
- Replaced
Bug Fixes
- CI/CD:
- Fixed
build.ymlworkflow step success checks to improve continuous integration reliability. - Updated
release.ymlpublish conditions for more accurate release outcomes.
- Fixed
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
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
SelectionListcontrol (experimental):- Added to
src/PleasantUI/Controls/SelectionList/SelectionList.cs, enables dynamic selectable items. - Introduced binding properties for item customization and selection.
- Added
ImageTemplatePropertyfor custom image rendering of items. - Introduced
EmptyMessagePropertyto display messages when no items are available. - Included
DestinationIndexfor improved item navigation. - New method for custom button content registration.
- Added to
SelectionListItemcontrol (experimental):- Introduced in
SelectionList.axamlwith customizable templates.
- Introduced in
SelectionListcontrol (preview):- Featured in
SelectionList.axaml, supports multiple items and empty states.
- Featured in
NavigationViewenhancements:src/PleasantUI/Controls/NavigationView/NavigationView.csnow provides improved item selection management and consistency.
Improvements
SelectionListcontrol (experimental):- Example usage updated for dynamic item generation.
SelectionListItemtheme (preview):- Enhanced with transitions and interaction states for better user experience.
- Allowed scrolling configuration for improved usability.
NavigationViewcontrol:- Improved item selection consistency.
PleasantThemeinitialization:- Deferred language initialization for enhanced performance.
Bug Fixes
NavigationViewcontrol:- Fixed selection state management of leaf items.
- Fixed clipping issue that affected text visibility.
SelectionListItem:- Resolved visibility issues in
SelectionListItemelements.
- Resolved visibility issues in
Breaking Changes
PleasantTheme.axaml.cs:- Changed
ReinitializeComponent()implementation, affecting initialization sequence.
- Changed
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit
v5.1.3-alpha1
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: IntroducedDockAreacontrol for dock area representation (preview).DockArea.cs: AddedLocationPropertyfor dock area location.DockArea.cs: AddedViewPropertyproperty.DockArea.cs: AddedSideBarPropertyproperty.DockArea.cs: AddedTargetPropertyfor dock area target name.DockArea.cs: AddedLocalizedNamePropertyfor dock area localized name.DockAreaDragDropBehavior.cs: IntroducedDockAreaDragDropBehaviorfor dock drag-and-drop functionality (preview).DockAreaLocation.cs: AddedDockAreaLocationrecord for docking locations.DockableDisplayMode.cs: CreatedDockableDisplayModeenumeration for display modes.PathPicker.cs: IntroducedPathPickercontrol for selecting files and folders (preview).PleasantFileChooser.cs: AddedPleasantFileChooseras a custom file picker UI (preview).PleasantDrawer.cs: IntroducedPleasantDrawercontrol for drawer-style panels (preview).PopConfirm.cs: AddedPopConfirmcontrol for confirmation dialogs (preview).PleasantCaptionButtons.cs: Added full-screen button withPART_FullScreenButton.PleasantCaptionButtons.cs: ProvidedOnToggleFullScreen()method for window state toggling.PleasantTitleBar.cs: AddedIsTitleVisibleproperty for title panel visibility.PleasantTitleBar.cs: AddedIsTitleBarHitTestVisiblePropertyfor drag area hit-testing.HorizontallySplittedView.cs: IntroducedHorizontallySplittedViewcontrol with resizable divider (experimental).IDockAreaView.cs: IntroducedIDockAreaViewinterface for managing dock areas (experimental).NamedColumnDefinition.cs: AddedNamedColumnDefinitionclass for column definitions (experimental).NamedColumnDefinition.cs: AddedNameproperty.ObservableHelper.cs: CreatedObservableHelperclass for observable methods (experimental).OverflowLayoutView.cs: IntroducedOverflowLayoutViewcontrol for managing overflow of items (experimental).OverflowLayoutView.cs: AddedItemsSourceproperty.OverflowLayoutView.cs: AddedItemTemplateproperty.OverflowLayoutView.cs: AddedMenuItemTemplateproperty.OverflowLayoutView.cs: AddedOrientationproperty.OverflowLayoutView.cs: AddedSpacingproperty.OverflowLayoutView.cs: AddedButtonproperty for the overflow button.PointThicknessConversion.cs: AddedPointThicknessConversionstatic class for point conversions (experimental).ReDock.cs: IntroducedReDockthree-pane docking control with grid layout (experimental).ReDock.cs: Added left, center, and right content/template/width proportion properties:LeftContent,LeftContentTemplate,LeftWidthProportionContent,ContentTemplate,WidthProportionRightContent,RightContentTemplate,RightWidthProportion
ReDockHost.cs: IntroducedReDockHostas the main host control for docking (experimental).ReDockHost.cs: AddedLeftSideBar,RightSideBar,MainContent,MainContentTemplate.ReDockHost.cs: AddedLeftSideBarWidth,RightSideBarWidth.ReDockHost.cs: AddedIsFloatingEnabledproperty.ReDockHost.cs: AddedButtonMoveevent for moving buttons between sidebars.ReDockHost.cs: AddedButtonDisplayModeChangedevent.ReDockHost.cs: AddedButtonFlyoutRequestedevent.
Improvements
PathPicker.cs: Enhanced layout and styling forPathPickercontrol.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: AddedParsemethod to convert string toDockAreaLocation.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 inMeasureOverride.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: CorrectedPseudoClasslogic for active states based on window state.DockAreaDragDropBehavior.cs: Fixed drag-and-drop handling for missingSideBarButtonformat.OverflowLayoutView.cs: Fixed dynamic measure updates forItemsSource.OverflowLayoutView.cs: Corrected size cache clearing inUpdateItemsSource.ReDock.cs: Fixed visibility logic for collapsing side panels.
Breaking Changes
- None in this pre-release.
Packages
- PleasantUI
- PleasantUI.DataGrid
- PleasantUI.MaterialIcons
- PleasantUI.ToolKit