Hallo zusammen
Ich hab Win7, .net4 und ein WPF Window (MS Ribbon).
Habe ich Aero Theme eingeschaltet und starte meine Applikation, ist manchmal mehr, manchmal weniger des Window schwarz. Durch resizen (neu rendern) erscheint dann wieder das gewünschte Window Look&Feel.
Schalte ich die Aero Theme aus, funktioniert alles prächtig.
Gibts hierzu ein Workaround, wie das Fenster auch ohne neu Rendern und mit Aero Theme "normal" erscheint? Das Problem scheint ja seit Windows Vista (Aero) zu bestehen.
Die einzigen Lösungen im Netz - disable Desktop Composition und Aero Theme ausschalten - kann ich nicht machen, weil man den Kunden nicht vorschreiben kann, die Aero Theme auszuschalten..
Weiss jemand Rat?
Merci
Martin
ein WPF Window (MS Ribbon).
Daran wird es wohl liegen: WPF: Button statt Fenstertitel
Eine wirkliche Lösung scheint es keine zu geben, außer auf den FluentRibbon umzusteigen.
FluentRibbon lässt sich leider nicht schlau automatisiert Testen, darum hat bei der Ribbon Entscheidung MS Ribbon gewonnen..
Gibt es keinen (anderen) Workaround oder eine Lösung?
Gibt es keinen (anderen) Workaround oder eine Lösung?
Wenn ihr eine entsprechende Subscription habt, würde ich da wirklich mal direkt bei MS nachfragen.
Laut MS ist es ein Grafikkartenproblem - wenn die GPU das ganze Bling Bling nicht mehr rechnen kann oder was weiss ich..
http://support.microsoft.com/kb/963021
Zu den Punkten 1-6: Verantwortung abschieben, dann einen hoffnungslosen Versuch vorschlagen und wenn das nicht geht, mal ein Logfile schicken und hoffen, dass sich ja jemand in den nächsten Jahren drum kümmert.. sie sorry aber äääh...
Kann ja nicht sein dass Millionen von Entwicklern da draussen alle die Aero Theme bei sich und den Kunden ausgeschaltet haben...
Man kann die Hardware Acceleration auch für ein einzelnes Window ausschalten (remind: erst nach dem vollständigen Laden des Window kann der Code ausgeführt werden)
Punkt 6
(Finds zwar noch immer doof das man arbeiten der GPU auf die CPU schmeisst, aber jänu.. es läuft so wenigstens)
[EDIT: Hab den Code hierher kopiert, falls die Page mal nicht mehr existieren sollte)]
private void OnLoaded(object sender, EventArgs e)
{
if (ForceSoftware)
{
HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
HwndTarget hwndTarget = hwndSource.CompositionTarget;
// this is the new WPF API to force render mode.
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
}