Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
WPF - Beim Ausführen entsteht ein Rand, der beim Designer nicht vorhanden ist
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

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

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Exis,
Zitat von Lars Schmitt
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
private Nachricht | Beiträge des Benutzers
Neidhard
myCSharp.de - Member



Dabei seit:
Beiträge: 140

beantworten | zitieren | melden

Oder du verwendest, das in zwischen mitgelieferte, Blend
Der Designer von VS ist wirklich nur fürs grobe
private Nachricht | Beiträge des Benutzers
Madleen
myCSharp.de - Member



Dabei seit:
Beiträge: 36

beantworten | zitieren | melden

Hi, du musst dann die Margin Eigeneschaft nutzen um den Button innerhalb des Panels zu verschieben :)
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Zitat von Exis
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
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5983
Herkunft: Leipzig

beantworten | zitieren | melden

Hi Exis,
Zitat von Lars Schmitt
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
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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ß.
Attachments

Moderationshinweis von Coffeebean (09.07.2014 - 20:24:56):

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

private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 966

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
jogibear9988
myCSharp.de - Member



Dabei seit:
Beiträge: 589
Herkunft: Offenau

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

ü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...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Exis
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Zitat von Exis
SharpDevelop: btnCreateUserClick
VS: btnCreateUser_Click

Zitat von Coffeebean
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
private Nachricht | Beiträge des Benutzers