Skip to content

Conversation

KlausLoeffelmann
Copy link
Member

@KlausLoeffelmann KlausLoeffelmann commented Jul 28, 2025

Fixes System Control Button rendering issues in dark mode, where a control button is either rendering not in dark mode, or has rendering artefacts when rendering in the context of the property grid.

These issues have been pointed out by customers, and are, among others, one of the blockers for GitHub Extensions, which are emotionally discussed on their GitHub issues

gitextensions/gitextensions#9191 (comment)

(and also might even save lives gitextensions/gitextensions#11904)

Note while the latter is certainly an ironic-funny remark, those discussions around dark mode for WinForms app shows the high participation of the community and the desire to make this work, and note also that other issues which have been pointed out in other projects show us clearly, why we should accomodate rendering issues as early as possible to unblock them: GitExtension in particular but also other projects can provide their aspired .NET 10 based DarkMode-enabled versions as soon as .NET 10 becomes available.

Fixes rendering issues in dark mode rendering, where a button is used in the context of another control:

  • DropDownArrow
  • UpDown based controls
  • Ellipse-Control in Property browsers

These buttons have not been rendered correctly in dark mode, and a new system control button renderer (tested by CTI) fixes these issues.

Note that this PR does not change the Classic (Light Mode) code paths in any way.

Examples:

image
image
image

Current versions have been tested by CTI and they also reassured that the Classic mode CodePaths (LightMode rendering) remain unchanged to minimize any risks.

Microsoft Reviewers: Open in CodeFlow

@KlausLoeffelmann KlausLoeffelmann requested a review from a team as a code owner July 28, 2025 21:46
@github-actions github-actions bot added the area-DarkMode Issues relating to Dark Mode feature label Jul 28, 2025
Copy link

codecov bot commented Jul 28, 2025

Codecov Report

❌ Patch coverage is 33.10023% with 287 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.87326%. Comparing base (fbd28a7) to head (c35b79a).
⚠️ Report is 5 commits behind head on release/10.0-preview7.

Additional details and impacted files
@@                       Coverage Diff                       @@
##           release/10.0-preview7      #13748         +/-   ##
===============================================================
- Coverage               76.90985%   76.87326%   -0.03660%     
===============================================================
  Files                       3260        3261          +1     
  Lines                     643088      643411        +323     
  Branches                   47601       47625         +24     
===============================================================
+ Hits                      494598      494611         +13     
- Misses                    144830      145137        +307     
- Partials                    3660        3663          +3     
Flag Coverage Δ
Debug 76.87326% <33.10023%> (-0.03660%) ⬇️
integration 18.97943% <30.53613%> (-0.01510%) ⬇️
production 51.52889% <33.10023%> (-0.05333%) ⬇️
test 97.42152% <ø> (ø)
unit 48.91751% <25.40793%> (-0.04309%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@KlausLoeffelmann KlausLoeffelmann added servicing-consider .NET Shiproom label indicating a PR seeks to enter into a branch under Tell-Mode criteria 🚫 * NO-MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) labels Jul 28, 2025
Copy link
Member

@merriemcgaw merriemcgaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Critical fix for Dark Mode users

@rbhanda rbhanda added servicing-approved .NET Shiproom approved the PR for merge and removed servicing-consider .NET Shiproom label indicating a PR seeks to enter into a branch under Tell-Mode criteria labels Jul 29, 2025
@KlausLoeffelmann KlausLoeffelmann merged commit 4d55eb1 into dotnet:release/10.0-preview7 Jul 29, 2025
9 checks passed
@KlausLoeffelmann KlausLoeffelmann deleted the DrkMde_a_BackPort_13747_SystemButton branch August 13, 2025 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-DarkMode Issues relating to Dark Mode feature 🚫 * NO-MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) servicing-approved .NET Shiproom approved the PR for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants