.NET GUI

.NET Community rund um alle Graphical User Interface (GUI) Themen.
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

Geteilte GUI und Brushes verwenden, aber dennoch Ressourcenschonen?

Letzter Beitrag 06-25-2008 19:25 von Norbert Eder. 3 Antworten.
Seite 1 von 1 (4 Treffer)
Beiträge sortieren: Zurück Weiter
  • 06-24-2008 14:29

    • Jonn
    • Top 50 Mitwirkender
    • Registriert am 06-24-2008
    • Sachsen
    • Beiträge 4
    • Punkte 80

    Geteilte GUI und Brushes verwenden, aber dennoch Ressourcenschonen?

    Hallo Community,
    ich bin grad ganz frisch in die WPF Welt eingestiegen und dabei sind mir ein paar Fragen gekommen.
     

    Ausgangsituation:

    Ich möchte meine Oberfläche in 3 Bereiche (Kopf, Content und Fuß) einteilen. Hierzu nutze ich ein Grid. Um darin die Controls zu positionieren ist in jedem Grid ein Dockpanel vorgesehen.
    Den Hintergrund von Kopf und Fuß fülle ich je mit einen Farbverlauf (LinearGradienBrush).
     

    Nun die eigentliche Frage:

    Die Anwendung soll möglichst Performant und klein bleiben.
    Ist da ein solches vorgehen mit Grid und Dockpanel angemessen oder gibt es eine bessere Möglichkeit. (Canvas möchte ich nicht nutzen, da zu undynamisch)

    Mein Gedanke rührt daher, da ich über diverse Artikel bezüglich Performance und GUI Design gestoßen bin.
     
    Ein weiteres Problem sind die Brushes für die Farbverläufe. Kopf und Fuß haben den Gleichen verlauf, nur gespiegelt. Kann ich das auch mit 1 Brush erledigen (Stichwort statische Resourcen?!)


    Vielen dank schon mal!
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 06-24-2008 14:48 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 377
    • Punkte 5.734
    • ForumsAdministrator

    AW: Geteilte GUI und Brushes verwenden, aber dennoch Ressourcenschonen?

    Hallo und herzlich willkommen.

    Die Frage ist natürlich, was genau von den jeweiligen Controls du wirklich gebrauchst. Hast du das Grid lediglich, um eine Art Tabelle und damit eine Positionierung zu bekommen? Oder möchtest du hier auch GridSplitter verwenden, damit die Breiten und Höhen verstellbar sind? Wenn nein, dann kannst du auch mit einem DockPanel arbeiten.

    Das aktuell im Grid positionierte DockPanel: Ist dieses wirklich notwendig? Oder kann das eventuell durch ein StackPanel auch erledigt werden?

    Grundsätzlich solltest du dir darüber Gedanken machen, ob du für deine Zwecke auch tatsächlich das richtige Panel einsetzt, denn mit zusätzlicher Funktionalität des eingesetzten Panels erhöht sich auch die Komplexität beim Ausrichten und Rendern (siehe dazu auch den MSDN-Artikel Optimieren der Leistung: Layout und Entwurf). In diesem Artikel findet sich auch ein wichtiger Punkt zum Thema Bottom-Up und Top-Down-Ansatz.

    Zum Thema Brushes und statische Ressourcen:
    StaticResources haben jetzt nicht unbedingt etwas mit dem Brush zu tun. Grundsätzlich stehen hier zwei Arten von Resourcen-Zugriffen zur Verfügung: Static und Dynamic. Static bedeutet, dass die Ressource beim ersten Zugriff ausgewertet wird. Mittels Dynamic wird definiert, dass sich die Resource zur Laufzeit ändern kann und daher WPF doch überprüfen möge, ob denn das der Fall ist um bei einer Änderung die Ressource neu auszuwerten. Dynamic ist daher weniger performant als Static bietet jedoch eben den Vorteil der möglichen Ressourcen-Änderung.

    Zwei Brushes führen sicherlich nicht zum Performance-Desaster.

    Abgelegt unter: ,
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 06-25-2008 11:55 Antwort zu

    • Jonn
    • Top 50 Mitwirkender
    • Registriert am 06-24-2008
    • Sachsen
    • Beiträge 4
    • Punkte 80

    AW: Geteilte GUI und Brushes verwenden, aber dennoch Ressourcenschonen?

    Danke für den Link und den Hinweisen.

    Kopf und Fuß sollen sich von der Größe her nicht anpassen. Im Prinzip wie eine ganz simple Menü- und Status- bar in der ich die Controlls auswechseln kann.

    Die Anwendung soll so ne Art Terminplaner werden. Somit sollen auch im Hauptfenster verschiedene Inhalte angezeigt werden (z.B. Wochenübersicht, Dringende Aufgaben,…).

    Wie würde man das am besten lösen?
    Ich hatte mal etwas ähnliche programmiert (mit WinForms ), indem ich die verschiedenen „Haupt- Inhalte“ auf separate Benutzersteuerelemente erstelle und je nach bedarf in ein Panel lade.

    Ist das auch in WPF ein guter Weg oder wie würde das besser gehen?

    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 06-25-2008 19:25 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 377
    • Punkte 5.734
    • ForumsAdministrator

    AW: Geteilte GUI und Brushes verwenden, aber dennoch Ressourcenschonen?

    Wenn sich Kopf und Fuß nicht anpassen sollen (ich gehe davon aus, dass du es lediglich auf die Höhe, nicht jedoch auf die Breite beziehst), dann wäre ein DockPanel schon mal ganz in Ordnung. Auf jeden Fall solltest du ohne Grid auskommen können.

    Für die unterschiedlichen Ansichten würde ich auch auf eigene Controls zurück greifen, die dir dein Model einfach anders darstellen. Ein Ansatz wäre hier sicherlich das MVC Pattern, welches im Artikel MVC Pattern mit WPF verwenden näher beschrieben wird. Ebenfalls gibt es eine WPF MVC Demo als Download. Das sollte dich insgesamt schon weiter bringen bzw. dich mit Ideen für eine Vorgehensweise versehen.

    Abgelegt unter: ,
    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (4 Treffer)
Powered by Community Server (Commercial Edition)    Hosting powered by 69° media solutions