wpf是什么 - wpf知乎




窗口高度=“自动”不按预期工作 (2)

我试图做的是显示一个窗口,它没有明确的高度/宽度,(这两个值都省略或设置为Auto )。 我猜测窗口会通过自动计算所有包含的usercontrols大小来找出它的大小,但这实际上并不工作!

相反,我得到一个ActualwidthActualheight值都设置为512的大窗口(?!?!)

窗口声明:

<Window x:Class="Window3"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window3" 
  Height="Auto">
<StackPanel>
    <Label>Window</Label>
</StackPanel>
</Window>

通过以下方式显示此窗口为对话框:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
    Dim dlg As New Window3
    dlg.ShowDialog()
End Sub

有没有解决方案? 我不想明确地设置我的窗口的大小,因为表单中的很多控件都会根据构造函数参数进行折叠,而试图找到表单的实际大小将会非常棘手(并且很难看)。


将窗口的属性SizeToContent to "WidthAndHeight" 。 这应该有所帮助。


老问题,但更新的答案:

正如@ Muad'Dib在他的回答中所建议的那样:

你应该设置SizeToContent="WidthAndHeight"

如果窗口内容的大小增加超过屏幕大小,窗口可能会从屏幕溢出。 所以,你必须考虑:

MaxWidth="600"
MaxHeight="400"






wpf