Frage von EricV1993, 35

VIsual Studio WPF Designer zeigt Controls anders als sie kompiliert sind. Warum?

Hallo Leute,

wenn ich eine View per WPF erstelle, habe ich schon seit längerer Zeit das Problem, dass der Designer mir etwas anderes anzeigt als es dann kompiliert aussieht.

Diesbezüglich habe ich euch mal ein kleines Beispiel Projekt erstellt, wo man eindeutig sehen kann, dass die 3 Kästchen an anderen Positionen stehen, als ich es eingestellt habe.

Alle haben in der Quelldatei die Breite 35 von mir bekommen, und den exakt gleichen Margin (Margin="0,35,557,0").

Warum ist das so? Konnte es in bisherigen Projekten immer etwas umgehen, aber professionel ist sowas ja nunmal nicht.

Hoffe jemand kann mir bei dem Problem helfen.

Viele Grüße, Eric

Antwort
von CrystalixXx, 17

Wenn du dir die Werte zur Laufzeit ausgeben lässt, unterscheiden diese sich im Vergleich zu den im Designer festgelegten Werten? Also haben die dann immernoch die gleichen Positionen, Ausdehnungen und Abstände?

Vielleicht kannst du das Projekt irgendwo hochladen, dann könnte ich es mir mal anschauen.

Kommentar von EricV1993 ,

Hallo, erstmal sorry für die späte Antwort. War bis gestern im Urlaub.


Habe nochmal ein neues Test-Projekt erstellt, dass Problem ist das gleiche.

Projekt: https://drive.google.com/open?id=0B5XXp\_i0mKE1RnVvQTAxYkFjclU

Kommentar von CrystalixXx ,

Google lässt mich das nicht herunterladen:

Sie können auf diesen Inhalt nicht zugreifen, da er gegen unsere Nutzungsbedingungen verstößt.

Da hat wohl irgendein Filter ein false positive gemeldet.

Kommentar von EricV1993 ,

Hab es hier nochmal hochgeladen und getestet. Sollte jetzt funktionieren. http://www.file-upload.net/download-11756053/Test.zip.html

Kommentar von CrystalixXx ,

Hmm. Ich habe mal kurz einen Blick reingeworfen und festgestellt, dass da meine WPF Kenntnisse zu gering sind. Da fehlt mir ein wenig das Hintergrundwissen über den Ablauf der Layoutlogik.

Aber: Wie genau soll sich das ganze denn verhalten? Soll der obere Bereich immer 38 Pixel hoch und der linke Bereich immer 45 Pixel breit sein? Wie soll sich das ganze in Bezug zu einer Größenänderung des Fensters verhalten?

Wenn die Werte immer fest sein sollen, dann könntest du folgendes ausprobieren:

    <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="45"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="38"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Name="gridSidbar" Margin="0" Background="BlanchedAlmond" Grid.Row="1"/>
<Grid x:Name="gridHeader" Margin="0" Background="Beige" Grid.Column="1"/>
<Grid x:Name="gridRect" Margin="0" Background="Aquamarine"/>
</Grid>

Ich denke wenn du das Grid in Zeilen und Spalten aufteilst, dann wirst du damit deutlich mehr Erfolg haben als absolut definierte Abstände zu einer relativen Containergröße. (Deswegen verschwindet der linke Bereich, wenn das Fenster zu klein wird, weil der feste Abstand nach rechts versucht wird einzuhalten):

Keine passende Antwort gefunden?

Fragen Sie die Community