Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic - Align with Win11 look and feel #6270

Open
4 of 6 tasks
merriemcgaw opened this issue Dec 4, 2021 · 13 comments
Open
4 of 6 tasks

Epic - Align with Win11 look and feel #6270

merriemcgaw opened this issue Dec 4, 2021 · 13 comments
Assignees
Labels
area-Theming Epic Groups multiple user stories. Can be grouped under a theme. Priority:2 Work that is important, but not critical for the release
Milestone

Comments

@merriemcgaw
Copy link
Member

merriemcgaw commented Dec 4, 2021

Windows 11 implemented a new look and feel. While we get most of that automatically through the Common Controls we do have several places where we owner draw our controls and these should be enhanced in some way to look more aligned with Windows. This is part of our dotnet/planning/issues/27 theme.

I will be creating and adding issues to this epic in the coming weeks to outline precisely what we need to be doing.

@merriemcgaw merriemcgaw added api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation area-Theming Epic Groups multiple user stories. Can be grouped under a theme. labels Dec 4, 2021
@merriemcgaw merriemcgaw added this to the .NET 7.0 milestone Dec 4, 2021
@kirsan31
Copy link
Contributor

kirsan31 commented Dec 4, 2021

#3691? 😌

@AraHaan
Copy link
Member

AraHaan commented Dec 14, 2021

@merriemcgaw is there plans to have it auto select dark mode for everything if Windows is in Dark mode (to color everything including scrollbars dark like in Windows Explorer).

Bonus Points: If the Windows Team can expose a way to make all MessageBoxes/TaskDialogs, as well as all of the Common Controls dark as well too.

Although it would be cool if there was apis where an application can create it's own Themes (that SetWindowTheme can be called with) that only can be used by the application that "registers" that theme only during the lifetime of the application. This is so users can basically provide their own visual styles and Windows would use them without them needing to change any of their code or needing to dig into undocumented window messages, etc just to override certain things.

An example is an application with multiple icons where say, icon 1 is purple (which makes the application needing to be themed entirely in purple colors), icon 2 is pink (which makes the application needing to be themed entirely in pink colors), or light/dark to match the OS when an icon is not selected.

@merriemcgaw
Copy link
Member Author

Our plans are in the very early stages @AraHaan. I'm working with Windows to make sure an API is available that exposes to WinForms whether the OS is set to light theme or dark theme. We'd obviously expose this in WinForms APIs as quickly as we can. But going as far as a full automatic theme, I can't predict a timeline for that. We've got some ideas but there's also issue prioritization and resourcing to consider.

If anyone has specific API suggestions or ideas around this we are excited to see them😄.

@AraHaan
Copy link
Member

AraHaan commented Dec 17, 2021

I guess a possible winapi header for it could look like so:

WINAPI BOOL IsSystemLightThemeMode(); /* For getting if the OS is in light mode or dark mode. */
/* a special version of all of the MessageBox and TaskDialog apis that
adds BOOL lightMode as a parameter (and have the original basically stub
into it with it set to true to avoid code duplication on the implementation level). */

Oh course that would need to be done on the Windows sides and more work might need to be done to allow it for basically all of the common controls apis, etc.

@AuracleTech
Copy link

image
Do you know how sad this made me... I... I'll stop programming...

@RussKie
Copy link
Member

RussKie commented Jan 4, 2022 via email

@merriemcgaw
Copy link
Member Author

@RussKie is correct. We're going to revisit this issue again with Windows. The concept of MDI apps is not something Windows is recommending as an approach to UI design, so getting them to make a change like this is pretty difficult.

@memoarfaa
Copy link

memoarfaa commented Jan 5, 2022

@RussKie

This is a Windows issue, a pure MFC app will look the same.

2022-01-05_23-42-10.mp4

May be but it's beautiful to draw it.
paint Non Client area not easy for all.
make Chrome window for mdi ,Child ,normal Window is required if asp.net core didn't do it who will do

@memoarfaa
Copy link

memoarfaa commented Jan 5, 2022

@merriemcgaw

@RussKie is correct. We're going to revisit this issue again with Windows. The concept of MDI apps is not something Windows is recommending as an approach to UI design, so getting them to make a change like this is pretty difficult.

Windows fix will not be good issue but custom NC area WndProc theme messages will be

@RussKie
Copy link
Member

RussKie commented Jan 5, 2022 via email

@memoarfaa
Copy link

If you have a fix in mind, please feel free to open a draft PR to continue the discussion.

you already see the fix but there is some of points need to discuss how to introduce it.
I will open discussion

@kirsan31
Copy link
Contributor

kirsan31 commented Jan 6, 2022

@memoarfaa

you already see the fix but there is some of points need to discuss how to introduce it.
I will open discussion

You can use existing one.

@merriemcgaw merriemcgaw added the Priority:2 Work that is important, but not critical for the release label Jan 19, 2022
@merriemcgaw merriemcgaw modified the milestones: .NET 7.0, .NET 8.0 Aug 10, 2022
@JeremyKuhne JeremyKuhne modified the milestones: .NET 8.0, .NET 9.0 Aug 15, 2023
@merriemcgaw merriemcgaw removed the api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation label Jan 30, 2024
@KlausLoeffelmann
Copy link
Member

Take a look at this:
#10985

@JeremyKuhne JeremyKuhne modified the milestones: .NET 9.0, 9.0 RC1 Jul 24, 2024
@merriemcgaw merriemcgaw self-assigned this Jul 31, 2024
@merriemcgaw merriemcgaw modified the milestones: 9.0 RC1, .NET 10.0 Jul 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Theming Epic Groups multiple user stories. Can be grouped under a theme. Priority:2 Work that is important, but not critical for the release
Projects
None yet
Development

No branches or pull requests

8 participants