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