Ich möchte einfach fließenden Text auf der linken Seite und ein Hilfefeld auf der rechten Seite.
Das Hilfefeld sollte bis zum unteren Rand reichen.
Wenn Sie die äußere Hülle abnehmen StackPanel
darunter funktioniert es hervorragend.
Aber aus Gründen des Layouts (ich füge UserControls dynamisch ein) muss ich die Umhüllung haben StackPanel
.
Wie erhalte ich die GroupBox
bis auf den Boden des StackPanel
wie Sie sehen können, habe ich es versucht:
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Height="Auto"
XAML :
<Window x:Class="TestDynamic033.Test3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test3" Height="300" Width="600">
<StackPanel
VerticalAlignment="Stretch"
Height="Auto">
<DockPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="Auto"
Margin="10">
<GroupBox
DockPanel.Dock="Right"
Header="Help"
Width="100"
Background="Beige"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Height="Auto">
<TextBlock Text="This is the help that is available on the news screen." TextWrapping="Wrap" />
</GroupBox>
<StackPanel DockPanel.Dock="Left" Margin="10" Width="Auto" HorizontalAlignment="Stretch">
<TextBlock Text="Here is the news that should wrap around." TextWrapping="Wrap"/>
</StackPanel>
</DockPanel>
</StackPanel>
</Window>
Antwort:
Danke Mark, mit DockPanel
anstelle von StackPanel
klärte es auf. Im Allgemeinen verwende ich DockPanel
mehr und mehr jetzt für WPF-Layouting, hier ist die feste XAML:
<Window x:Class="TestDynamic033.Test3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Test3" Height="300" Width="600" MinWidth="500" MinHeight="200">
<DockPanel
VerticalAlignment="Stretch"
Height="Auto">
<DockPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="Auto"
MinWidth="400"
Margin="10">
<GroupBox
DockPanel.Dock="Right"
Header="Help"
Width="100"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch"
Height="Auto">
<Border CornerRadius="3" Background="Beige">
<TextBlock Text="This is the help that is available on the news screen." TextWrapping="Wrap"
Padding="5"/>
</Border>
</GroupBox>
<StackPanel DockPanel.Dock="Left" Margin="10" Width="Auto" HorizontalAlignment="Stretch">
<TextBlock Text="Here is the news that should wrap around." TextWrapping="Wrap"/>
</StackPanel>
</DockPanel>
</DockPanel>
</Window>
0 Stimmen
Die Formatierung wurde korrigiert - sie mag es nicht, wenn man von einer Liste direkt zum Code übergeht.
1 Stimmen
Kann man eine GroupBox so dehnen, dass sie sich von selbst dehnt? Wenn ja, fügen Sie die übergeordneten Elemente eines nach dem anderen hinzu, bis Sie herausfinden, welches Element das Layout stört.
0 Stimmen
RoBorg: Gut zu wissen, das hat mich verblüfft, danke
1 Stimmen
Danke. Mit Ihrer Antwort war ich in der Lage, 2 verschachtelte DockPanels zu verwenden, um mein sehr ähnliches Problem zu lösen!