Conversation
…storing Maximized State via Code lepoco#1453 (lepoco#1466) * Fix: Title Bar MaxButton Fix: Title Bar MaxButton When Maximizing Window Programmatically * Update: Improved Client Area Border Handling on Programmatic Maximize Update: Improved Client Area Border Handling on Programmatic Maximize
* Fix lepoco#1551 * Remove Transparent background from Grid
Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
* tests: Update tests * fix: Rollback XAML styling
* Fix PasswordBox not pasting correctly * Refactor GetNewPassword to use TextChange collection --------- Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…#1543) Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…o#1541) Updated the `Border` elements for the "Top" and "Footer" sections in `NavigationViewCompact.xaml` to include a `BorderThickness` property with a value of `.5`. This ensures a uniform appearance for the separators across the UI. Fixes issue lepoco#1514 Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…verlapped by buttons in MessageBox
* fix: Fix system tray right-click menu not displaying * fix: Fix system tray right-click menu not displaying * Update src/Wpf.Ui.Tray/Controls/NotifyIcon.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Wpf.Ui.Tray/Controls/NotifyIcon.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Wpf.Ui.Tray/Controls/NotifyIcon.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Wpf.Ui.Tray/Controls/NotifyIcon.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: add tray menu demo * Comment out Menu DataContext update in NotifyIcon Commented out the line that updates Menu's DataContext to prevent potential issues. * Change trayMenuItems type from object to Control --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…oco#1560) * fix: restore window resize capability in title bar area - Split `TitleBar` class into partial classes, add `TitleBar.WindowResize.cs` file to separate window resize logic, maintaining code modularity and single responsibility. - Add `WM_DPICHANGED` message enum value in `User32.cs` and fix `GetWindowRect` method parameter types. * refactor(User32): use WinDef.RECT in User32.GetWindowRect Follow the existing convention of using the WinDef.RECT alias. * chore: Format code --------- Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…epoco#1532) * Update NavigationViewConstants.xaml * Update NavigationViewCompact.xaml
…ce (lepoco#1533) * Update UiElementExtensions.cs * Update UiElementExtensions.cs --------- Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…oco#1529) * Update NavigationLeftFluent.xaml * Update NavigationViewBasePaneButtonStyle.xaml * Update NavigationViewBottom.xaml * Update NavigationViewCompact.xaml * Update NavigationViewLeftMinimalCompact.xaml * Update NavigationViewTop.xaml
…epoco#1523) * Update DropDownButton.cs * Update DropDownButton.cs
* Fix RadioButton issues * Update Light.xaml * Update Dark.xaml * Update RadioButton.xaml --------- Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
…poco#1472) * Add files via upload * Update ContextMenu.xaml * Update MenuItem.xaml * Update ToolTip.xaml * Update EffectThicknessDecorator.cs Add Animation stuff. * Update ComboBox.xaml
* Update DatePicker.xaml * Update Calendar.xaml * Update DatePicker.xaml * Create DatePickerButtonPaddingConverter.cs * Create NegativeThicknessConverter.cs * Update DatePicker.xaml * Delete src/Wpf.Ui/Converters/NegativeThicknessConverter.cs * Do the same styling here as TextBox Reference: https://github.com/lepoco/wpfui/pull/1520/files
…e properties to `NavigationView` component (lepoco#1464) * Add IsTopAndFooterSeparatorVisible property to NavigationView component * Split IsTopAndFooterSeparatorVisible into IsTopSeparatorVisible and IsFooterSeparatorVisible --------- Co-authored-by: pomian <13592821+pomianowski@users.noreply.github.com>
* Fix various fill colors * Update Dark.xaml * Update Dark.xaml
* Update PasswordBox.cs * Center buttons/icons to follow TextBox style * Update PasswordBox.xaml * Update PasswordBox.xaml * Update PasswordBox.xaml * Unify remainder
…t code (lepoco#1564) * chore: Prepare tools * chore: Format code * fix: Disable border when inactive in Win11
* Remove unused pinvoke. * Initial changes to CsWin32. * Move all of UxTheme to CsWin32. * Formatting... * Initial User32 bits. * Convert User32 to CsWin32. * Remove a bit more. * Initial DwmApi changes. * Finalize DwnApi Interop. * Shell to CsWin32. * Another from User32. * Fix titlebar coloring. * Replace the rest with CsWin32. * This is no longer used now. * Formatting. --------- Co-authored-by: Nuklon <23340481+Nuklon@users.noreply.github.com>
Co-authored-by: Nuklon <23340481+Nuklon@users.noreply.github.com>
* feat: Bump .NET 10 * chore: Bump drawing common * chore: Do not fail on error * ci: Update pipelines * fix: Ignore MC3080 * drop internal for .NET 10
There was a problem hiding this comment.
Pull Request Overview
This PR merges updates from the base repository dated 2025-11-12. The changes include upgrading the target framework from .NET 9.0 to .NET 10.0, introducing a new integration testing infrastructure using FlaUI and xUnit v3, migrating from manual P/Invoke declarations to Microsoft.Windows.CsWin32, and various UI control improvements and theme refinements.
- Framework upgrade to .NET 10.0-windows
- New integration test project with FlaUI for UI automation testing
- Migration to CsWin32 for Windows API interop, removing manual P/Invoke code
- UI control enhancements (ToggleSwitch, RadioButton, PasswordBox, SplitButton, etc.)
- Theme color updates and new pressed state brushes
- TitleBar window resize support improvements
Reviewed Changes
Copilot reviewed 176 out of 176 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Wpf.Ui.UnitTests/Wpf.Ui.UnitTests.csproj | Upgraded target framework to net10.0-windows |
| tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj | Removed entire project file |
| tests/Wpf.Ui.Gallery.IntegrationTests/* | Added new integration test project with xUnit v3 and FlaUI |
| src/Wpf.Ui/Wpf.Ui.csproj | Updated target frameworks, added CsWin32 package, removed PolySharp and StyleCop |
| src/Wpf.Ui/Interop/* | Migrated to CsWin32, removed manual P/Invoke declarations |
| src/Wpf.Ui/Controls/* | Various UI improvements and bug fixes across multiple controls |
| src/Wpf.Ui/Resources/Theme/* | Updated theme colors and added new pressed state brushes |
| extension(DWMWINDOWATTRIBUTE attr) | ||
| { | ||
| /// <summary> | ||
| /// Gets the undocumented window attribute for enabling Mica effect on a window. | ||
| /// </summary> | ||
| public static DWMWINDOWATTRIBUTE DWMWA_MICA_EFFECT => (DWMWINDOWATTRIBUTE)1029; | ||
|
|
||
| /// <summary> | ||
| /// Gets the window attribute used to enable immersive dark mode prior to Windows 11. | ||
| /// </summary> | ||
| public static DWMWINDOWATTRIBUTE DMWA_USE_IMMERSIVE_DARK_MODE_OLD => | ||
| DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE - 1; | ||
| } |
There was a problem hiding this comment.
The 'extension' keyword syntax is not standard C#. This appears to be an attempt to use C# 13's extension types feature, but the syntax is incorrect. Extensions should be declared using proper extension type syntax or as static extension methods. This code will likely not compile.
| if (message == PInvoke.WM_NCHITTEST) | ||
| { | ||
| if (TrailingContent is UIElement || Header is UIElement || CenterContent is UIElement) | ||
| { | ||
| UIElement? headerLeftUIElement = Header as UIElement; |
There was a problem hiding this comment.
Inconsistent indentation detected. Lines 705-716 use tabs while the rest of the file uses spaces. This creates inconsistent formatting and should be corrected to match the project's indentation style.
Merge from base repo.