Hallo,
versuche die ganze Zeit
System.Drawing.Brush in System.Drawing.Color umzuwandeln.
Dabei habe ich das über rgb oder string-Werte versucht.
alle 3 Möglichkeiten, die mir einfallen kriege ich leider nicht hin.
Hat jemand einen Tipp für mich???
Danke.
Brush ist die abstrakte Basisklasse.
Was hast Du wirklich? SolidColorBrush?
Color myColor = (myBrush as SolidColorBrush).Color;
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ahso, dann liegt es wohl daran.
Tatsächlich erzeuge ich nen "Brush" über SolidBrush:
private System.Drawing.Brush meinBrush(){
System.Drawing.Brush brush = null;
brush = new SolidBrush(System.Drawing.Color.FromArgb(140,214,249);
return brush
}
Und diesen Brush will ich eben später als System.Drawing.Color haben.
Hallo blr
new Pen(yourBrush).Color
hilft dir das?
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Danke für die Antwort 😃
Ich habs jetzt hinbekommen. In meiner aufgezeigten mini-funktion erzeuge ich über einen "Color" den Solidbrush.
Ich hab einfach in der mini-funktion nur den "color" erzeugt und Solidbrush an ner anderen Stelle.
Jetzt hab ich ne universelle Color-Funktion, die ich an vers. Stellen verwenden kann.
Danke noch mal für die Hilfe.
Merk dir doch einfach die Color an sich.
Statt
brush = null;
brush = new ...
return brush;
könntest du auch einfach nur return SolidBrush(...) aufrufen. Somit ist deine Funktion überflüssig. Anstatt die aufzurufen kannst du auch gleich an Ort und Stelle den Brush erzeugen. Das ist genauso nur eine Zeile und du verschleierst nicht was da wirklich passiert.
Wenn er Brush nur an einer gewissen Stelle braucht, Color aber quasi sein Business-Element darstellt, ist sein neues Vorgehen ja korrekt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Die Art der Datenhaltung ist schon ok so. Ich glaube nur dass blr sich etwas zu viele Funktionen anlegt.
Statt immer wieder die Color über die Funktion zu erzeugen, könnte er sich die einmalig erzeugen und als Property halten.
Statt sich den Brush über eine Methode zu erzeugen die den Code nur aufbläht, würde ich die eine Codezeile lieber da schreiben wo ich den Brush benötige.
Das hat jetzt nichts direkt mit dem angesprochenen Problem zu tun sondern ist ein nicht verlangter Zusatztip 😃
Hallo chilic,
sich die Color zu merken, statt sie immer neu zu berechnen, wäre sicher sinnvoll. Genauso wie es wohl sinnvoll wäre, sich den Brush zu merken, statt ihn immer wieder neu zu erzeugen.
Aber wenn es tatsächlich so ist und sich auch sinnvoll nicht vermeiden lässt, dass an verschiedenen Codestellen immer der gleiche Brush erzeugt werden muss, dann ist es nur DRY, wenn man die Erzeugung des Brushs in eine eigene Methode auslagert, die an den verschiedenen Stellen aufgerufen wird.
Soll später eine andere Art von Brush erzeugt werden oder wären später doch mehrere Codezeilen für die Erzeugung nötig, müsste nur eine Stelle geändert werden. Man spart den Aufwand, den ganzen Code an den Erzeugungsstellen abzurufen, und vermeidet die Gefahr, eine zu übersehen und sich so Inkonsistenzen einzuhandeln.
herbivore