У меня есть что-то вроде этого:
<MyView>
<Style TargetType="Border" x:Key="Module">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="Padding" Value="10" />
<Setter Property="Margin" Value="10" />
</Style>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border Name="Border1" Style="{StaticResource Module}">
<!--some controls with non-fixed width-->
</Border>
<Border Grid.Row="1" Name="Border2" Style="{StaticResource Module}">
<!--some controls with non-fixed width-->
</Border>
<Border Grid.Column="1" Grid.RowSpan="2" Style="{StaticResource Module}" Name="Border3">
<!--some controls with non-fixed width-->
</Border>
</Grid>
</MyView>
Элементы управления внутри Border1 и Border2 могут иметь разную ширину, поэтому их границы также будут иметь разную ширину, что выглядит не очень хорошо. Как заставить границу Border1 и Border2 иметь одинаковую ширину, чтобы она выглядела лучше?
Решение установки одинаковой ширины вручную не учитывается, поскольку ширина дочерних элементов управления Border1 и Border2 может варьироваться.
А содержимое Border3 просто пожирает все доступное пространство, и это нормально.