Я надеялся, что здесь мне кто-нибудь поможет. У меня есть 2 текстовых поля и кнопка в док-панели, и я хотел бы, чтобы 2 текстовых поля растягивались и сжимались в зависимости от размера окна.
У меня есть док-панель, которая содержит кучу кнопок меню слева, и в этой док-станции у меня есть еще одна док-станция с двумя текстовыми полями и кнопкой. Когда я изменяю размер главного окна, я хочу, чтобы правая док-станция сжимала текстовые поля, чтобы правая док-станция просто не исчезла при ударе о левую док-станцию. Имеет ли это смысл?
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Left" Margin="5, 0, 0, 0" Name="button1" Content="1" FontSize="10" Foreground="#FF565656" Width="64" Height="40"/>
<Button DockPanel.Dock="Left" Margin="5, 0, 0, 0" Name="button2" MinWidth="25" />
<DockPanel LastChildFill="False" DockPanel.Dock="Right" Margin="5, 0, 5, 0">
<TextBox DockPanel.Dock="Left" Name="textBoxUsername" Text="" TextWrapping="Wrap" ToolTip="Enter username" FontSize="11" FontWeight="Normal" Height="20" HorizontalAlignment="Left" Width="90" d:LayoutOverrides="GridBox" KeyUp="textBoxUsername_KeyUp" />
<PasswordBox Margin="5, 0, 0, 0" DockPanel.Dock="Left" Name="textBoxPassword" ToolTip="Enter password" Height="20" d:LayoutOverrides="HorizontalAlignment, GridBox" Width="90" KeyUp="textBoxPassword_KeyUp" />
<Button DockPanel.Dock="Left" Margin="5, 0, 0, 0" Name="buttonLogin" Content="Login" Height="20" MinWidth="70" Click="buttonLogin_Click" Width="500" />
</DockPanel>
</DockPanel>
В настоящее время при этом будет просто исчезнуть правая панель док-станции, когда размер окна будет изменен ниже ширины всего на панели. Я бы хотел, чтобы правая панель (встроенная док-панель) уменьшилась в размерах. Возможно ли это без огромных усилий по переписыванию? Я явно оставил много кода ... Любая помощь будет принята с благодарностью.
ОБНОВЛЕНИЕ
Я подхожу ближе, но все еще не совсем то, на что я надеялся. Я добавил сетку, это позволяет растягивать, но я надеялся оставить все неподвижно вправо. То есть я хочу только сжать, а не растянуть, но чтобы он был прикреплен вправо.
Вот как это выглядит сейчас.
<DockPanel LastChildFill="False">
<Button DockPanel.Dock="Left" Margin="5, 0, 0, 0" Name="button1" Content="1" FontSize="10" Foreground="#FF565656" Width="64" Height="40"/>
<Button DockPanel.Dock="Left" Margin="5, 0, 0, 0" Name="button2" MinWidth="25" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MaxWidth="110" />
<ColumnDefinition Width="*" MaxWidth="110" />
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Name="textBoxUsername" Text="" TextWrapping="Wrap" ToolTip="Enter username" FontSize="11" FontWeight="Normal" FontStyle="Normal" Foreground="#FF9C9C9C" FontFamily="Arial Unicode MS" Height="20" d:LayoutOverrides="GridBox" KeyUp="textBoxUsername_KeyUp" Margin="5,13,5,0" MaxWidth="110" VerticalAlignment="Center" HorizontalAlignment="Stretch" />
<PasswordBox Grid.Column="1" Margin="5,13,5,0" Name="textBoxPassword" ToolTip="Enter password" Height="20" d:LayoutOverrides="HorizontalAlignment, GridBox" KeyUp="textBoxPassword_KeyUp" MaxWidth="110" VerticalContentAlignment="Center" />
<Button Grid.Column="2" DockPanel.Dock="Left" Margin="5,13,5,0" Name="buttonLogin" Content="Login" Template="{StaticResource ButtonControlTemplate2}" FontFamily="Arial" BorderBrush="{x:Null}" Background="{x:Null}" Height="20" MinWidth="70" Click="buttonLogin_Click" />
</Grid>
</DockPanel>
Итак, это центрирует все в имеющемся у него пространстве. Как только я устанавливаю горизонтальное выравнивание на «Право», текстовые поля становятся раздавленными вот так
Есть мысли по этому поводу?