Beschreibung:
Vor einiger Zeit hatte ich ein Projekt zum Erstellen und Verwalten von Labels. Diese bestanden aus:
-einem Rahmen
-einem Hintergrund
-dem Text
Zu dieser Zeit lernte ich gerade WPF. Da ich gerne MVVM einsetzte, aber trotzdem die guten Funktionen der WPF (Hintergrundbrushes, etc. ) einsetzten wollte, und mir nichts einfiel, wie dies auch mithlife von MVVM zu lösen war, wurde mir hier im Board geraten ein Paralleles Grafikframework zu schreiben. Dieses möchte ich euch hier nun auch zur Verfügung stellen.
Das "Framework" heißt "ParallelGraphicsDefinitionManagement" und besteht aus Grafikklassen, die sich ausschließlich in XML speichern (und laden) können. Weitere Funktionalität beinhalten sie nicht. Allerdings stellt die Library Adater für Konvertierer zur Verügung. (PGDM_Library)
Das Zusatzframework (PGDM_WPF) setzt an diese Adapter an und stellt mittels ExtensionMethods Konvertierer für WPF zur Verfügung.
Ein weiteres Framework für System.Drawing (WinForms & ASP.NET) sowie ein ManipulationFramework sind in Planung. Zweiteres wird Erweiterungsmethoden für die PGDM-Klassen zur Verfügung stellen die das Object Manipulieren sollen. Beispielsweise die Methode Invert bei der Klasse PGDMColor.
Wichtig:
Das Grafikframework ist auf den Einsatz von MVVM ausgelegt. Das Framework ist bei weitem nicht fertig (Erweiterungen/Updates folgen)
Edit: Das WPF-framework muss vorher noch initialisiert werden:
PGDM_WPF.Initializer.Initialize();
Auszug aus der BorderBrush Property des damaligen LabelViewModel:
public Brush BorderBrush
{
get
{
if (_model.BorderBrush == null)
return null;
return (Brush)_model.BorderBrush.ConvertToWPF();
}
set
{
PGDMBrush result = (PGDMBrush)PGDMInstanceCreator.CreateInstance(value);
result.ConvertFromWPF(value);
_model.BorderBrush = result;
OnPropertyChanged( "BorderBrush" );
}
}
Schlagwörter: WPF Grafikframework MVVM
while (!sleep) sheep++;
Hallo,
Das Grafikframework ist auf den Einsatz von MVVM ausgelegt.
Soll sich das ViewModel überhaupt darum kümmern müssen welcher Brush in der View verwendet wird? Nein.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Doch soll es in dem Fall, denn der Hintergrundfarbverlauf kommt aus den Daten. Diese möchte ich unabhängig vom Oberflächenframework speichern.
Edit: Ich verweise hier auch noch mal auf: Diskussion über Grafikframework
while (!sleep) sheep++;
Hallo,
denn der Hintergrundfarbverlauf kommt aus den Daten
OK - das ist also ein "Sonderfall" 😉
Hab oben auch den Link eingefügt.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"