[wpf] 창 높이 =“자동”이 예상대로 작동하지 않습니다

내가하려고하는 것은 높이 / 너비가 명시 적으로없는 창을 표시하는 것입니다 (둘 다 값을 생략하거나으로 설정 Auto). 포함 된 모든 usercontrols 크기를 계산하여 창 크기를 자동으로 알 수 있다고 생각했지만 실제로는 작동하지 않습니다!

대신 큰 창이 Actualwidth있고 Actualheight값이 모두 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". 도움이 될 것입니다.


답변

오래된 질문이지만 업데이트 된 답변 :

@ Muad’Dib가 그의 대답에서 제안한 것처럼 :

을 설정해야합니다 SizeToContent="WidthAndHeight".

창의 내용 크기가 화면 크기보다 커지면 화면에서 창이 넘칠 수 있습니다. 따라서 다음 사항을 고려해야합니다.

MaxWidth="600"
MaxHeight="400"


답변

글쎄, 당신은 창 높이를 자동으로 설정할 수 없습니다.이 작업을 수행하려면 약간의 트릭을 사용하고 기본 메인 그리드 컨테이너의 이름을 지정하고 높이를 자동으로 설정 한 다음 창 높이를 메인 그리드의 높이에 바인딩하십시오


답변

로드 된 이벤트 창이있는 현재 화면에서 크기 설정


답변