Windows 7 Aero theme - wpf

I've already check stackoverflow and the web for my problem, but I can't find any answer.
I can't find a way to have the Windows 7 Aero theme working. I mean, I have the Aero style from PresentationFramework.Aero, but it has the Vista look, the blue selection is not exactly the same.
This is the Windows 7 theme in Windows Explorer
And this is mine (the Aero look, I got by follow this thread)
I Have already managed to do the same ,as windows 7, by hand, but it's a pain to have to style every control, in order to retrieve this effect. Do you know if there is any way to get the Windows 7 Aero?

There is no way to achieve this out-of-the-box. The default WPF List- and TreeView controls are extremely lacking in functionality (compared to the native counterparts) and the whole WPF Aero theme is severely missing polish. It wasn't updated for Windows 7 (which Aero-variant looks also better than Vista), and it doesn't even look like Vista. Apparently many people are satisfied with a half-assed copycat theme (also judging by lots of fake-looking Windows styles in UI toolkits).

Related

Authentic Windows 7 Theme in Windows 10?

I develop a WPF desktop application that runs in a Citrix environment which applies the Windows 7 Basic Theme to my application. As a result, I run Windows 7 on my dev workstation to make sure the UI renders as intended.
I would like to upgrade it to Windows 10, however, but I have to find means of running my app with the Windows 7 theme within Windows 10. Incidentally (and oddly), if I run my app in Windows XP compatibility mode on Windows 10, it renders with the Windows 7 theme, so surely the OS is able to render the theme. I'm not sure I want to do all the testing of my app with compatibility mode activated, though...
I am also aware of 3rd party theming solutions, but to rule out any discrepancies, I would like to use the authentic Windows 7 theme from Microsoft.
Are there any tricks/tweaks/hacks out there to simply enable the Windows 7 theme for my app in Windows 10?
The WPF Theme for Aero is located in the PresentationFramework.Aero library, so add that as a reference. Then, in your App.xaml add the following merged dictionary to override the default theme.
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
I'm pleasantly surprised that they've finally updated WPF in .NET 4.5 to support Windows 8/10 themeing (they didn't at the start of Windows 8) with the following:
PresentationFramework.Aero2
PresentationFramework.AeroLite
Haven't seen it before today, need to work with .NET 4.5 more often ;)
Try making the form an MDI with child windows as MDI Childs use the Windows 7 style as their border, or add some references to PresentationFramework.Aero/AeroLite/Aero2 and apply it in your code

Should I care about current theme?

Authoring a WPF control template, consisting of only a Grid, some TextBlocks and a couple of Buttons, do I really need to worry about the current theme on user's machine? Will it look crippled or otherwise imperfect on a machine running on Win8? I do not have access to a Win8 machine, so can't ensure, but this forum post suggests that "simple" controls are not affected by the current theme. If that is the case, which controls are included in the list of simple contorls?
I believe all standard controls come without any styles applied to them on Win8.
Update:
I am sorry it looks like I was wrong. There is a specific Theme for Windows 8. It is called Aero2.NormalColor.xaml
You can find more info about it here:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/e3dd4221-af4d-4ae4-a983-895db12ebcd0/what-is-the-theme-name-for-a-wpf-application-on-windows-8
Here is where to find the theme file itself:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/d05228d4-3dc2-4241-84a1-236a7a1f2d65/where-is-the-xaml-source-for-the-aero2normalcolor-theme
More here
http://brianlagunas.com/add-windows-8-aero-theme-support-to-your-wpf-custom-control/
Update 2:
And here is how to force your application to use specific Theme ignoring windows version:
http://www.kennethham.com/wp/2010/11/force-wpf-to-use-windows-7aero-theming-in-classic-mode/

Editing the standard WPF Aero theme

I want to look into the default styles that are used for the default WPF application so that I can experiment/tweak them. (I believe this to be the standard AERO theme)
So I downloaded the default themes from Microsoft, and manually applied the AERO theme.
I added the "Aero.NormalColor.xaml" file into my project
I then added "PresentationUI.dll" and "PresentationFramework.Aero.dll"
I then modified the namespace from "xmlns:theme="clr-namespace:Microsoft.Windows.Themes;" to "xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" (It was throwing errors otherwise)
Finally I add it into the Apps resource dictionary
But it ends up looking slightly different, in particular, menus seem to look different. So I guess I'm running the wrong theme.
This is using VS 2010 and the default new .net4 WPF application project
Those default themes you downloaded could be god knows what. Probably not what is shipped with the actual .NET framework and Windows.
I don't know what your end goal is, but I would suggest looking at the XAML of a specific control you are interested in Blend. It was a pretty simple action, something like right click -> edit control template, although I can't remember the exact steps (like where to click exactly etc). I'm sure you can google that information very quickly...

WPF Ribbon changes title bar style in XP

[EDITED]
After several tries, I found out it was the Microsoft WPF Ribbon that causes the title bar style not rendering correctly.
Application without Ribbon in XP:
Application with Ribbon in XP:
I have already set the theme to be XP style. Still not fix. It is a bug in Microsoft Ribbon or am I missing something? On Window 7, on the other hand, renders OK.
Develop on WPF C# .NET 4, VS2010.
Why do you care? this is a user setting to have Aero enabled or not in Vista or 7 and theming enabled or not in XP like in 2 and 3 pictures you sent.
In general you should ignore this. Office 2007 and 2010 with ribbon UI renders the same but because ribbons are skinning the application windows completely.
My suggestion is to either use skins and do the same or simply ignote this because if I use Vista with Aero enabled I would not like your App to look like classic Win2000 applications.
This is anyways an issue with the window title bar as it will use the default theme of the OS you are using.
I suggest you to neutralize the style by implementing a custom window style that takes the windows 7 look n feel for all windows ion your applications. Have a look at the MessageBox control from latest extended WPF toolkit.
It has a windows 7 style themse that looks exactly same on all the above OS if you use
Window.AllowsTransparency="False"
Window.WindowStyle="None"
Window.Style="{StaticResource Windows7WindowStyle}"

Am I missing some controls for windows mobile?

I'm a C# developer taking my first steps in Windows Mobile development. I've installed Visual Studio 2008 SP1 and the Windows mobile 6 Pro and Standard SDK's. Now I am trying to create a simple winforms application.
The problem is that when I set the Target Platform to Windows Mobile Standard, I seem to be missing a lot of controls. For example, there is a checkbox, but there isn't even a simple button (take a look at this screenshot ). When I switch to Windows Mobile 6 Professional, I get all kinds of controls.
What could be the problem? I've already tried to repair the WM 6 standard SDK, but that did not help.
Thanks,
Adrian
That's correct. Windows Mobile Standard, also known as Smartphone, doesn't have a touchscreen. All interaction is done through the two menu action buttons. Because of this many controls, like buttons, don't make sense and are therefore filtered from the toolbox.

Resources