| 

.NET C# Java Javascript Exception

1
Ich weiß auch nicht, was ich bei WPF immer falsch mache.

Folgenden Teil eines Designs möchte ich erreichen:

[Bild][<-- Listbox -->][<-- Listbox -->][Bild]
[<-- Listbox -->][Listbox][<-- Listbox -->]


Die Elemente ohne <-- --> haben eine feste Größe und sollen sich nicht verändern. Die anderen Elemente sollen sich den verfügbaren Platz nehmen.

Aktuell sieht mein Code so aus:
<StackPanel>
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Image Height="100" HorizontalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="100" AllowDrop="True" Source="/FlatfileDraft;component/Images/none.png"/>
<ListView Height="100" HorizontalAlignment="Stretch" Name="FileinfoList" Width="auto" Background="{x:Null}" BorderBrush="{x:Null}"></ListView>
<ListView Height="100" HorizontalAlignment="Stretch" Name="DatabaseInfoList" Width="auto" Background="{x:Null}" BorderBrush="{x:Null}"></ListView>
<Image Height="100" HorizontalAlignment="Right" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="100" AllowDrop="True" Source="/FlatfileDraft;component/Images/none.png"/>
</DockPanel>
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<ListView Height="232" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="FileFields" DockPanel.Dock="Left" />
<ListView Height="232" HorizontalAlignment="Stretch" Name="DatabaseFields" VerticalAlignment="Stretch" DockPanel.Dock="Right"/>
</DockPanel>
</StackPanel>


(Die Listbox unten in der Mitte fehlt hier noch)
Meine Erwartung ist eigentlich, dass bei HorizontalAlignment="Stretch" sich das Teil stretched! Es macht allerdings genau das Gegenteil und nimmt so wenig Platz wie möglich ein. Wie sage ich den Listboxen, dass sie sich den restlichen Platz fair aufteilen?
News:
21.03.2012
Feroc 1,2k 2 9
Die LastChildFill-Eigenschaft am DockPanel sollte dir helfen.
Mario Priebe 21.03.2012
1 Antwort
1
Ich halte das DockPanel insgesamt für überflüssig.
Das Grid ist vielfältiger:
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image Height="100" HorizontalAlignment="Left" Grid.Column="0" Grid.Row="0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="100" AllowDrop="True" />
<ListView HorizontalAlignment="Stretch" Grid.Column="1" Grid.Row="0" Name="FileinfoList" Width="auto" Background="{x:Null}" BorderBrush="{x:Null}"></ListView>
<ListView HorizontalAlignment="Stretch" Grid.Column="2" Grid.Row="0" Name="DatabaseInfoList" Width="auto" Background="{x:Null}" BorderBrush="{x:Null}"></ListView>
<Image Height="100" HorizontalAlignment="Right" Grid.Column="3" Grid.Row="0" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="100" AllowDrop="True" />
<ListView HorizontalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" VerticalAlignment="Stretch" Name="FileFields" DockPanel.Dock="Left" />
<ListView HorizontalAlignment="Stretch" Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Name="DatabaseFields" VerticalAlignment="Stretch" DockPanel.Dock="Right"/>
</Grid>
21.03.2012
judgy 3,0k 1 1 8
Jep, so in der Art habe ich es im Moment dann auch. Danke.
Feroc 21.03.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH