Laden...

Button Style ableiten - Propertys erweitern.

Erstellt von Hans_Rakete vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.122 Views
H
Hans_Rakete Themenstarter:in
178 Beiträge seit 2011
vor 11 Jahren
Button Style ableiten - Propertys erweitern.

Hallo,

Wenn ich mehrere Buttons habe, die sich alle nur dadurch unterscheiden, dass zwei Grafiken (Standard und MouseOver // schwarz-weiß und farbig) unterschiedlich sind so muss ich für jeden Button einen eigenen Style bzw. ein eigenes Template schreiben, denn es scheint unmöglich zwei Grafiken von "außen" an das Template zu übergeben - bei einer einzelenen Grafik hat es noch über ein ContentTemplate funktioniert, zwei Grafiken zu übergeben klappt aber nicht.

Was kann ich nun tun? Das Control Button abzuleiten und zwei eigene Propertys anfügen um zum Ziel zu gelangen oder gibt es einen einfacheren Weg?

Vielen Dnak + viele Grüße.

446 Beiträge seit 2004
vor 11 Jahren

Ich bin mir nicht sicher ob du das meinst.

Erstell als erstes deinen "base" Style.

<Style x:meineButtons ... />
<Style x:meineButtons1 basedon={StaticResource x:meineButtons} ... />
<Style x:meineButtons2 basedon={StaticResource x:meineButtons} ... />
<Style x:meineButtons3 basedon={StaticResource x:meineButtons} ... />

Bei den erweiterten meinButtons1-3 musst du dann noch das ControlTemplate setzen. In das ControlTemplate baust du deine Grafiken dann ein.

http://msdn.microsoft.com/de-de/library/ms753328%28v=vs.90%29.aspx

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp

H
Hans_Rakete Themenstarter:in
178 Beiträge seit 2011
vor 11 Jahren

Hallo,

vielen Dank für die Antwort. Der Vorgang ist bekannt. einem Template ist aber eben auch nur eine Grafikadresse von außen zuzuführen (Beispielsweise über ContentTemplate), sobald es um zwei Angaben geht muss das Template immer wieder neu definiert werden, genau das versuche ich ja zu umgehen ...

5.658 Beiträge seit 2006
vor 11 Jahren

Hi Hans_Rakete,

Wenn ich mehrere Buttons habe, die sich alle nur dadurch unterscheiden, dass zwei Grafiken (Standard und MouseOver // schwarz-weiß und farbig) unterschiedlich sind...

Kennst du schon die AutoGrayImage-Klasse? Damit geht das sehr unkompliziert:

<Button>
  <my:AutoGrayImage Source2="/GrayImage;component/Images/Tulips.png" />
</Button>  

Christian

Weeks of programming can save you hours of planning