Hi,
ich habe ein seltsames Problem. Bitte fügt mal folgenden Code in ein neues WPF-Fenster ein:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="8"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="8"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Text="1234" Grid.Row="0" Grid.Column="0"/>
<Border Grid.Row="1" Grid.Column="0" Background="Aqua"/> <!--Nur zur Visualisierung wie groß Row 1 ist-->
<TextBox Text="1234" Grid.Row="2" Grid.Column="0"/>
<Button Grid.Row="0" Grid.RowSpan="3" Grid.Column="2" Padding="0" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" VerticalAlignment="Stretch">
<Border Background="Red" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<StackPanel>
<TextBlock Text="1234231312123123"/>
<TextBlock Text="1234231312123123"/>
<TextBlock Text="1234231312123123"/>
</StackPanel>
</Border>
</Button>
</Grid>
Im Anhang ist ein Screenshot wie es bei mir aussieht. Bitte auch die Maßangaben der Rows auf der linken Seite beachten^^
Ich möchte die zwei TextBoxen in einem festen Abstand von 8 Pixeln übereinander haben. Rechts daneben soll ein quadratischer Button in einem Abstand von ebenfalls 8 Pixeln sein, dessen Höhe gleich dem beider Textboxen zusammen + deren Abstand ist. Nun wird aber die mittlere Row weit über 8 Pixeln auseinander gezogen...kann mir das wer erklären? Entferne ich den Inhalt des Buttons, ist es korrekt.
Dir ist aber bewusst, dass WPF nicht mit "normalen" Pixeln arbeitet?
DPI and Device-Independent Pixels - Win32 apps
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Probiere mal zusätzlich MinHeight
und MaxHeight
bei der RowDefinition
auf 8 zu setzen.
@Abt: Ja, es sind DIP's soweit ich weiß. Nennen wir es "Größeneinheiten"^^ Auf dem Screenshot ist aber zu sehen, dass die mittlere Row 3 mal so hoch ist wie die anderen beiden welche angeblich 19 Größeneinheiten hoch sind.
@Th69: Danke! MaxHeight hilft tatsächlich...dachte die zu setzen wäre sinnlos wenn ich doch einen festen Wert angebe.