Laden...

WPF - Beim Ausführen entsteht ein Rand, der beim Designer nicht vorhanden ist

Erstellt von Exis vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.753 Views
E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren
WPF - Beim Ausführen entsteht ein Rand, der beim Designer nicht vorhanden ist

Hallo,

ich versuche gerade von Forms auf WPF umzusteigen.
Jedoch komme ich mit dieser XAML Oberfläche noch nicht ganz klar.
Im Designer hat die Form keinen Rand, lege ich einen Button nun oben Links oder Rechts in die Ecke, wird dieser zum Teil verschluckt weil ja der Rand beim Compilen entsteht...

Anderes, wenn ich z.B ein Frame mache oder ein DockPanel und dort ein Button, Canvas etc rein ziehe, wird das Objekt in die mitte Zentriert und kann nur noch vergößert/verkleinert werden, aber nicht verschoben. Was mache ich da falsch?

Gruß.

2.223 Beiträge seit 2005
vor 9 Jahren

Hallo Exis,

zum ersten solltest Du Dich einmal ein wenig mehr mit den Funktionalitäten der einzelnen Layout Container beschäftigen.

zum zweiten würde ich Dir Empfehlen den Designer Links liegen zu lassen, denn mit ein wenig Vorstellungskraft und ein wenig Übung bist Du um einiges schneller wenn du den XAML Code direkt schreibst.

Viele Grüße
Lars Schmitt

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo Exis,

zum zweiten würde ich Dir Empfehlen den Designer Links liegen zu lassen, denn mit ein wenig Vorstellungskraft und ein wenig Übung bist Du um einiges schneller wenn du den XAML Code direkt schreibst.

Absolut! Schalt den Designer ab und lerne erstmal, was ein Dockpanel, Stackpanel etc. alles kann. Auch wenn das erstmal komisch ist, wird die Lernkurve erstmal kräftig ansteigen.

Lies vorher erstmal ein richtiges Tutorial oder ein Buch. Zugegeben ist die XAML-Struktur, wenn man sie noch nie gesehen hat, wirklich manchmal verwirrend. (Und wenn man sie dann mal gesehen hat ist sie manchmal dann immernoch ein A*loch, aber nur ganz selten 😉

Weiter arbeite, gerade wenn du von Forms kommst, mit dem MVVM-Pattern. Machs gleich richtig. Dann lernst du die Vorteile schnell kennen.

Gruss

Coffeebean

N
135 Beiträge seit 2006
vor 9 Jahren

Oder du verwendest, das in zwischen mitgelieferte, Blend 😁
Der Designer von VS ist wirklich nur fürs grobe

M
35 Beiträge seit 2014
vor 9 Jahren

Hi, du musst dann die Margin Eigeneschaft nutzen um den Button innerhalb des Panels zu verschieben 😃

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Blend ist doch nur bei Visual Studio 13 Ultimate bei.
Ich habe aber lediglich nur Visual Studio 13 Express.

Danke an alle die geholfen haben. Ich muss mich dann wohl noch mit XAML befreunden...

2.207 Beiträge seit 2011
vor 9 Jahren

Blend ist doch nur bei Visual Studio 13 Ultimate bei.

No, bei Prof auch.

Blend. Schau mal obs funzt. Aber das macht dir auch XAML. Und nachher blickst du genauso wenig. Machs selber 😉

Gruss

Coffeebean

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Ok habs, merke nun aber keinen Unterschied von der Oberfläche.
Und nochmal auf meine erste Frage, ich verstehe die Antwort von lars nicht so ganz.
Also wieso wird der Rahmen der Form nach innen erstellt beim Compilen, sodass Randobjekte abgeschnitten werden? Ist das nicht totaler mist was VS da macht?

Gruß.

5.657 Beiträge seit 2006
vor 9 Jahren

Hi Exis,

zum ersten solltest Du Dich einmal ein wenig mehr mit den Funktionalitäten der einzelnen Layout Container beschäftigen.

Was ist daran nicht zu verstehen? Belies dich doch erstmal über die Technologie, die du verwendest, bevor du Microsoft "totalen Mist" vorwirfst. Deine Beschreibung (Elemente reinziehen) vermittelt jedenfalls nicht den Eindruck, daß du weißt, was du machst. So funktioniert weder WPF noch Windows Forms.

Und so kann man dir leider auch nicht helfen, denn aus der Beschreibung kann man schlecht auf die Ursache des Fehlers schließen. Siehe dazu auch [Hinweis] Wie poste ich richtig?, Punkt 1 und 5.

Christian

Weeks of programming can save you hours of planning

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Ein Bild wo man es sieht. Rechts der Designer wo der Button ganz da ist und in der erzeugten Form ist dieser abgeschnitten.
Ich habe in Windows Forms immer nur das grobe gemacht.

Gruß.

Hinweis von Coffeebean vor 9 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 6.1

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo Exis,

das haben wir schon verstanden 😉.

auch wenn du "nur das grobe" gemacht hast. Du willst mit WPF anfangen. Dann tus, ohne dich vorher drüber zu beschweren. Lass den Designer weg, dann hast du mehr Freude.

Gruss

Coffeebean

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Hey hey.

Füge ich über den Editor den Button hinzu und setze diesen an den Rand, ist dieser auch abgeschnitten in der Form. Ich lasse gerade ja den Designer komplett aus.
Ich möchte halt wissen wieso genau, wieso wird der Border nach innen erzeugt? Ist es von der Überlegung nicht doof?

Gruß.

W
955 Beiträge seit 2010
vor 9 Jahren

Hallo,

die Leutre hier wollen Dir sagen dass Du die Container erst einmal richtig lernen sollst. Also in Deinem Fall die Elemente nicht direkt positionieren, sondern vllt ein DockPanel verwenden.

J
641 Beiträge seit 2007
vor 9 Jahren

Wenn du mit einem Designer Arbeiten willst, kannst dir auch mal den von SharpDevelop anschauen! Für einfache Sachen ist der recht brauchbar, und auch oft schneller wie der von Visual Studio! Aber geht halt auch nicht alles was man in VisualStudio machen kann...

cSharp Projekte : https://github.com/jogibear9988

5.299 Beiträge seit 2008
vor 9 Jahren

übrigens nochmal zum Designer: ich verwende den durchgehend, allerdings anders als in Winforms.
Der Wpf-"Designer" ist für mich nur eine Vorschau und ein Tool zum Anwählen von Controls - dann springt er nämlich im Xaml auf die richtige Position.
Niemals aus der Toolbox ein Control auf den Designer ziehen!
Es ist so gut wie ausgeschlossen, dass der Designer daraufhin brauchbares Xaml generiert.
Die Controls also immer selbst ins Xaml eintragen, an die Stelle, wo sie hingehören.
Dann erscheinen sie auch im Designer an der rechten stelle.

Jo, und dann sich halt ins Layout-System einarbeiten. Also sowohl die Container durchprobieren: v.a. Grid, Dockpanel, StackPanel, aber auch Layout-Einstellungen der Controls, sowas wie Alignment.Stretch oder .Right oder .Left.

Dem bösen Button da oben könnte man glaub beikommen mit HorizontalAlignment.Right und VerticalAlignment.Top. Dann sitzt er oben rechts.
Dann kann man noch ein Margin dran machen, dass er sich nicht so in die Ecke drückt.
Ja - so ist ungefähr die Denke...

Der frühe Apfel fängt den Wurm.

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Ah SharpDevelop, super IDE. Habe die damals immer genutzt, keine ahnung wieso ich auf VS wieder umgestiegen bin. Schaue mir gerade SharpDevelop wieder an mit XAML, der Editor dafür sieht irgendwie besser aus, habe das Gefühl die Formatierung dort ist flüssiger und besser.
Was soll mir denn VS in WPF mehr bieten können als SharpDevelop?

@ErfinderDesRades danke, so ne Antwort habe ich gesucht.

Gruß.

5.299 Beiträge seit 2008
vor 9 Jahren

Hat SharpDevelop-Xaml-Editor auch ein Property-Fenster, und v.a. unterstützt es auch Binding-Picking im Xaml-Editor (folge dem Link)?

Hab ich zu erwähnen vergessen bei meiner Laudatio des Xaml-Designers.
Dabei ist das noch das allerwichtigste.

Der frühe Apfel fängt den Wurm.

E
Exis Themenstarter:in
51 Beiträge seit 2014
vor 9 Jahren

Das mit dem Property Fenster ist leider nicht da.. schade.
Das mit dem Binding-Picking weiß ich nicht. Das muss ich mir erstmal anschauen.

Was mir am SharpDevelop Editor mehr gefällt ist, dass die Formatierung Zeile für Zeile ist und nicht wie bei Visual Studio in einer Zeile.
Und ich bin gerne mal Faul und erstelle die Methoden über das Property-Fenster und in SharpDevelop werden die dann ohne Unterstrich erzeugt, ich habe in Visual Studio nie eine Option dazu gefunden.
SharpDevelop: btnCreateUserClick
VS: btnCreateUser_Click

Gruß.

2.207 Beiträge seit 2011
vor 9 Jahren

SharpDevelop: btnCreateUserClick
VS: btnCreateUser_Click

Weiter arbeite, gerade wenn du von Forms kommst, mit dem MVVM-Pattern. Machs gleich richtig. Dann lernst du die Vorteile schnell kennen.

Das Problem stellt sich mit MVVM erst gar nicht.

Gruss

Coffeebean