C# 设置边距或填充后,控件立即跳转到最大可能宽度

C# 设置边距或填充后,控件立即跳转到最大可能宽度,c#,wpf,C#,Wpf,我正在使用c#/WPF和.NET 4.6开发一个应用程序,遇到了一个以前从未发生过的非常奇怪的问题: 我有一个窗口,其中包含一个用户控件。窗口设置了SizeToContent=SizeToContent.width和height,用户控件包含以下StackPanel: <StackPanel> <TextBlock Text="{Binding MainText}" /> <ProgressBar Value="{Binding Progress}

我正在使用c#/WPF和.NET 4.6开发一个应用程序,遇到了一个以前从未发生过的非常奇怪的问题:

我有一个
窗口
,其中包含一个
用户控件
。窗口设置了
SizeToContent=SizeToContent.width和height
,用户控件包含以下
StackPanel

<StackPanel>
    <TextBlock Text="{Binding MainText}" />

    <ProgressBar Value="{Binding Progress}"/>

    <TextBlock Text="{Binding AdditionalText}"/>

    <StackPanel Orientation="Horizontal">
        <Image Source="{DynamicResource Icons.Colored.Info}" />

        <StackPanel>
            <TextBlock Text="{Binding CurrentCheckName}" />
            <TextBlock Text="{Binding CurrentCheckInfo}" />
        </StackPanel>
    </StackPanel>

    <ItemsControl ItemsSource="{Binding PastChecks}"/>
</StackPanel>
窗口大小调整为最大可能宽度,如果设置,则为
MaxWidth
,或者为我所有显示器的宽度

我不明白为什么会发生这种情况,因为我以前从未发生过这种情况,我也不知道这次我做了什么不同。

有人知道为什么会发生这种情况吗?

为什么是Grid.Row=“1”?这个网格是在哪里定义的?@o_weisman:Ups,这是另一次尝试使用
网格
而不是
堆栈面板
,它没有改变任何东西……我无法通过在堆栈面板中有一个带有进度条的窗口来复制这一点:无论我是否在进度条上设置了边距,窗口的大小都是正确的。此外,复制和粘贴XAML对我来说也很好(尽管显然没有任何绑定可以工作)。您是否对任何控件进行了不同的样式设置?如果是这样,可能是您使用的进度条样式有问题。
 <ProgressBar Value="{Binding Progress}" Margin="10"/>