1. ホーム
  2. wpf

[解決済み】Window Height="Auto "が期待通りに動作しない。

2022-04-04 12:37:08

質問

高さ/幅が明示的に設定されていない(値が省略されている、または設定されている)ウィンドウを表示しようとしています。 Auto ). 私は、ウィンドウが、含まれているすべてのユーザーコントロールのサイズを自動計算して、そのサイズを見つけるだろうと推測していましたが、これは実際には動作しません。

代わりに、大きなウィンドウで 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="WidthAndHeight" . これで解決するはずです。