In Menüs und Symbolleisten werden die Symbole (PNG-Dateien) nicht automatisch ausgegraut, wenn die Befehle nicht verfügbar sind.
Nun habe ich zwar harausgefunden, dass sich das über Style-Trigger lösen lässt, aber die ensprechenen Beispiele setzen lediglich die Opacity-Eigenschaft der Symbole, so dass diese halb durchsichtig sind. Das finde ich etwas unglücklich, denn der Unterschied ist für helle Hintergründe zu klein. Und wenn die Symbole noch durchsichter eingestellt werden, sind sie wiederum auf dunklem Hintergrund praktisch gar nicht mehr zu sehen.
Weiß jemand, wie ich Symbole auf einfache Weise ausgrauen kann, so, wie das bei Windows üblich ist?
Auch, wenn Ihr keine konkrete Lösung für "Graustufen" parat habt, wäre es nett, wenn Ihr sagen könntet, wie Ihr das ansonsten macht.
Daran habe ich auch schon gedacht. Das Problem ist nur, das ich dann für jeden Schalter und jeden Menüpunkt je einen eigenen Trigger implementieren müsste. Schießlich haben alle Elemente ein anderes Bild.
Oder gibt es eine Möglichkeit, die ich jetzt nicht sehe?
Anscheinend kann man das Symbol auch nicht mit einem Command verknüpfen und dort austauschen, oder?
Also umständlich ist jede Lösung und "gefallen" tut mir gar nichts so recht. Ich hätte erwartet, das Microsoft für solche Selbstverständlichkeiten etwas anbietet.
Wenn man die Lösung, auf die Jaksa unter "Weitere Infos" aufmerksam gemacht hat, einaml implementiert, bringt das m.E. im Nachhinein die meisten Vorteile. Allerdings ist das wieder eine eigene und somit "lokale" Lösung.
Umständlicher (doch dafür unabhängiger) ist der Inline-Trigger von Mario. Aber wegen dieser Unabhängigkeit markiere ich das mal als richtig. Auch wegen der Mühe und Arbeit ;-)
Was aber gern als Alternative gemacht wird, ist die Opacity des Bildes mittels Trigger herabzusetzen, wenn der Button disabled ist. Nicht ganz so schön wie ausgegraut, aber versteht auch jeder.
Also wir arbeiten ebenfalls mit solchen Menüs, nur ändern sich bei uns die Funktionalitäten meist nicht. Wir laden jedes Mal, wenn sich das Menü ändert (eine Option dazu kommt oder eine wegfällt), das entsprechende Menü erneut mit dem XAML-Reader.
Hierbei brauch man natürlich nur das Menüitem neu laden. Das gesamte Menü laden wir erst dann neu, wenn es sortiert werden muss oder Elemente wegfallen. Muss aber dazu sagen, dass wir ein eigenes, relativ großes, Framework dahinter haben, welches die Arbeit relativ dynamisch bzw. eher gesagt generisch übernimmt.
Mein Gedankengang war: Einzelne Menütitems als XAML-Code speichern und dann wenn Sie gebraucht werden entsprechend zu einem Menü zusammen basteln und dieses dann mit dem XAML-Reader laden.
Oder gibt es eine Möglichkeit, die ich jetzt nicht sehe?
Anscheinend kann man das Symbol auch nicht mit einem Command verknüpfen und dort austauschen, oder?