に感謝し、それを修正する唯一の方法は、奇妙なマージンを与えたり、両方をStackPanel
に入れることです。だから誰もがそれらをStackPanel
に入れているのです。
私はこれをお勧め:(あなたの心の海賊フレームにしている場合は、自分自身をApp.xaml
または)下図のようにスタイルを定義し、App.xaml
に含まれ、いくつかのグローバルなものにそれを置く:
<Style x:Key="FieldStyle" TargetType="HeaderedContentControl">
<Setter Property="Margin" Value="8,3" />
<Setter Property="MinWidth" Value="300" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HeaderedContentControl">
<StackPanel Orientation="Vertical">
<Label
FontWeight="Bold"
Content="{TemplateBinding Header}"
/>
<ContentPresenter
Margin="8,0,0,0"
/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
これにより、すべてのラベル/コントロールペアの書式設定を簡単に変更できます。私は通常、StackPanel
またはWrapPanel
自分自身でこれらのものの混乱を叩きつけるだろうが、Grid
があなたのレイアウトに合っているならば、ぜひそれを行けばよい。
そのスタイルのテンプレートはおそらくTemplateBinding
よりもはるかに多くのものになるはずですが、入力に疲れてしまい、実際に使うつもりです。