Designer nicht verwenden

  • WPF

Es gibt 47 Antworten in diesem Thema. Der letzte Beitrag () ist von Eistee.

    Designer nicht verwenden

    Hi,

    ich wollte mal fragen warum man den Designer nur zum Anschauen verwenden soll?
    Muss dazu sagen das ich bis jetzt nur am Buch/Forum lesen bin und mir das selber (in VS) noch nicht angesehen habe.

    Gruß IceTee
    Hallo, wie meinst du das genau? Ich benutze den WPF designer zum Erstellen und Ansehen von XAML-Code. Warum nicht die mitgelieferten Tools nutzen? Pixel-genaue abstände mache ich dann direkt im XAML-Code (außerhalb der Führungslinien), aber ansonsten ist der Designer ziehmlich gut gelungen. Wenn du meinen solltest,d as man die Controls lieber im Codebehind erstellt, das verbarucht nicht mehr/weniger leistung, ist nur aufwendiger, also nicht geeignet.
    na, gucks dir halt an - vorher fragen hat nicht viel sinn.

    aber ich kanns auch vorsagen:
    Wpf hat ein tolles dynamisches Layoutkonzept.
    Der Designer zerstört das aber, indem er undynamisch Layout-Angaben generiert, wenn man Controls aus der Toolbox auf die Designer-Fläche zieht.

    Also wennde ein per Designer erstelltes Window größer ziehst, dann passen sich die enthaltenen Controls nicht an, und das sieht zum Heulen aus.
    Man sollte in der WPF keine Controls einfach auf die Form droppen, das entspricht dem Konzept nämlich nicht wirklich. Per XAML erstellt und ohne feste Größe bzw. Margins stehen die Controls in einem automatischen Verhältnis zueinander, wozu man bei WinForms erstmal Dock oder ähnliches bemühen müsste.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Dazu benutze ich ihn häufig. Der Designer hat auch so seine Macken, aber seit dem 2012er VS hat der sich ganz schön gewandelt. Zum ausrichten usw. Ich kenne da kein gegenargument den nicht auch als Editor zu nehmen.

    Der Designer macht zwar alles an der oberen linken Ecke ausgerichtet, warum das jetzt so schlimm ist verstehe ich nicht. Im XAML muss ich einiges Tippen., aber wenn ich sowieso die Maus inder Hand habe brauche ich 2 Klickst um das anpassende Layout einzustellen. Außerdem setzt der Designer bei Controls wie Buttons usw. gleich eine Standartgröße. WIe Sie fast überall verwendet wird.
    Mit dem Designer kann man nur absolute Werte setzen, wenn man die Größe von der Form verändert sieht es dann nicht mehr gut aus.
    Vorteil von dem Designer ist, dass man ohne die APP zu starten ein Gefühl dafür bekommt wie es hinterher aussieht.

    MfG
    Im Anhang ist ein Bild vom Designer im VS 2012. Die Rot umrahmten "Dinger" helfen doch bei der Ausrichtung und der autom. Größenanpassung. 2 Klicks vs.

    XML-Quellcode

    1. HorizontalAlignment="Left" Margin="10,10,0,100"


    Ich hoffe ich habe meine Meinung deutlich gemacht.
    Bilder
    • converter.PNG

      16,62 kB, 571×395, 244 mal angesehen
    Ich sprach oben von Controls ohne Margin. Du machst ein wundervolles Feature von WPF zunichte.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Also ich hab das jetzt mal schnell probiert und ihr habt natürlich recht.
    Schade das man die Layouts nicht auch irgendwie im Designer festlegen kann, wenn ich
    mich recht erinnere funktionierte das bei Eclipse im WindowBuilder ganz gut.
    Aber ok so hat sich das ganze dann wohl fix aufgeklärt, danke an alle.

    Edit: Wobei ich mich frage wozu es z.B. WrapPanel gibt, da mir das Ding sehr unpraktisch vorkommt.
    Der einzige Einsatzzweck den ich finden konnte wäre sowas wie ein Picdump wo man einfach nur
    Random Bilder verteilen möchte.
    @SeriTools ich hasse es in Anwendungen wenn sich Buttons dynamisch vergrößern verkleinern, ist aber ansichtssache.
    Man kann es doch anpassen... Sobald man auf die Kettenglieder klickt passt es sich doch an, das wollte ich damit zeigen.
    Ein Button sollte sich auch nicht vergrößern, er sollte aber z.B. bei Größenänderung der Form z.B. in der rechten unteren Ecke bleiben, und nicht anfangen zu schweben.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @SeriTools: Wie setzt man Margin richtig ein?

    Kennt wer ein WPF Programm welches sich komplett resized?
    Also damit ich mal ein Programm Design sehen kann welches ohne Absolute Positionierung und Margin/Padding auskommt.
    Kann mir das nur schlecht vorstellen...

    Edit: Ah ok Lukas Post über dem hier, hat schonmal ein guten Einsatzzweck genannt.
    @Lukas
    gut, dann eben 2 Klickst und nicht HAlign und VAlign manuel eintippen. Ich bin auch jemand der lieber alles mit der Tastatur macht, aber einmal schnell einen Button drauf ziehen und 2 klicks machen geht meiner Meinung nach schneller, als wenn man alles von Hand eintippt. GZumal man da noch Hohe/Breit usw. mit angeben muss, was der Deisgner von alleiner übernimmt

    Bei solchen Programmen welche sich komplett selbst resizen würde ich am ehesten sagen die neue VS Oberfläche, ich glaube gelesen zu haben das das seit dem 2010er auch auf WPF bassiert. Wenn du dir den WPF-Bindungsdesigner ansiehst, der hat einige andere Controls und resized sich auch komplett.
    Tatsache ist, dass du es drehen und wenden kannst wie du es willst. Und wenn du nur nen halben Button auf das Fenster ziehst -> Der Code ist versaut, die Vorteile von WPF stark abgeschwächt und alles in allem kommt dabei nix als Crap raus. WPF wird in XAML geschrieben und ist auch darauf ausgelegt. Du kannst den Designer von mir aus verwenden um erstmal nen kleines Mockup zu basteln und zu schauen wie es aussieht(quasi als Ersatz für Stift und Papier) aber die Umsetzung sollte in purem XAML erfolgen. a) Hast du nen hässlichen XAML Code am Ende, den du wenn du ihn umschreiben möchtest nur löschen kannst
    b) Wird das Zeug statisch und passt sich nicht mehr an. Und du kannst jetzt sagen was du willst. Das ist gewünscht!. Oder was würdest du davon halten wenn die GUI von deinem Word rechts oben in der Ecke hängen bleibt?
    c) Sollte man in WPF wissen wie die Struktur der Oberfläche ausschaut. Gerade wenn man mit Visual und Logical Tree arbeitet(was gar nicht so selten vorkommt, da alles auf diesen beiden Bäumen aufbaut) wird es schwierig wenn man keine Ahnung hat wo was ist und alles irgendwie Kreuz und Quer in Paneln drinnen steckt und sich kein Mensch mehr auskennt.

    Fazit: Designe die Oberfläche mit XAML. Es hat nur Vorteile bis auf das, dass es eine Art Kindersicherung für Leute ist, welche von Forms kommen, irgendwann gehört haben WPF ist besser. Juhu ich verwende WPF, mache aber weiter wie in Forms und mache somit alles falsch. Das heißt Events verwenden, keine Bindings, keine ViewModel, keine Commands und eben auch den Designer.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Eistee schrieb:

    Kennt wer ein WPF Programm welches sich komplett resized?
    Also damit ich mal ein Programm Design sehen kann welches ohne Absolute Positionierung und Margin/Padding auskommt.
    Kann mir das nur schlecht vorstellen...
    wie gelegentlich angeklungen: absolute Positionierung ist üblicherweise NoGo, und meine Basteleien machen niemals sowas.
    Also einfach mal im Tut-Bereich meine Werke downloaden und ausprobieren, wie imo Layout zu funzen hat.
    @thefileo
    a - Stimme dir zu, deshalb nie mehr als das Grundzeugs, aber was du brauchst (für einen Button) sind Height, Width, Content, Margin, VAlign und HAlign, setzt der Designer von alleine, wollte es nur angemerkt haben. Positionieren geht, denke ich, dank der Ausrichtungslinien auch in den meisten Fällen besser, wenn man nicht schon 100 Controls drauf gezogen hat.
    b - 2 klicks - wer das nicht macht > selbst schuld
    c - Natürlich hilft es immer XAML zu verenden, umd as zu kapieren/zu nutzen. Wer den Deigner aber nicht immer sondern ur in bestimmten Fällen nutzt, der wirds auch benutze können, vorrausgesetzt er weiß wie man es macht.

    Wer von WinForms und CO wechselt und sich nicht über die Konzepte usw. Informiert > selbst schuld.

    Ich gehe da von mir aus. Ich habe seitdem ich mit .NET angefangen habe immer alles hinterfragt. Sollten Anfänger, denke ich, sowieso tun. ;)
    Ich nutze in meinen Programmen auch überall ein Autosize-Layout, und trotzdem nutze ich den Deigner gerne.