我做了一个名为SmallCtrl的简单UserControl。在另一个名为LargeCtrl的UserControl中,我使用后面的代码动态地将SmallCtrl添加到其子项列表中(用于测试):
public void LargeCtrl_Loaded(object sender, EventArgs args)
{
for (int i = 0; i < 10; i++)
_StackPanel.Children.Add(new SmallCtrl());
}
我使用水平方向的StackPanel,我需要它的子UserControls有一个右边距来创建它们之间的空间,这里是样式资源:
<Grid>
<StackPanel x:Name="_StackPanel" Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="{x:Type customCtrls:SmallCtrl}">
<Setter Property="Margin" Value="0,0,10,0"/>
</Style>
</StackPanel.Resources>
</StackPanel>
</Grid>
然而,当我使用LargeCtrl加载我的窗口时,边距不会显示。如果我用TextBox替换我的SmallCtrl,一切正常。我的问题在这里是什么?