programing

창 높이="자동"이 예상대로 작동하지 않음

fastcode 2023. 4. 20. 22:57
반응형

창 높이="자동"이 예상대로 작동하지 않음

이 작업은 높이/폭을 명시적으로 가지지 않는 창을 표시하는 것입니다(두 값 모두 생략 또는 로 설정됨).Auto포함된 모든 사용자 컨트롤의 크기를 자동 계산하여 창 크기를 알 수 있을 것으로 예상했지만, 실제로는 작동하지 않습니다!

대신 큰 창문이 열리고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"

창 높이를 자동으로 설정할 수 없습니다. 이렇게 하려면 약간의 속임수를 사용하여 메인 그리드 컨테이너의 이름을 지정하고 높이를 자동으로 설정한 다음 창 높이를 메인 그리드의 높이로 바인딩합니다.

다음을 수행할 수 있습니다.

MaxWidth = SystemParameters.MaximizedPrimaryScreenWidth;
MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;
SizeToContent = SizeToContent.WidthAndHeight;

를 사용하는 것에 주의해 주세요.SizeToContent혼자서도 충분해.다만, 컨텐츠 사이즈가 화면보다 큰 경우는, 화면 너머로 창이 오버플로우 합니다만, 이것과 이 설정을 조합하여MaxWidth그리고.MaxHeight기본적으로 화면의 최대 콘텐츠에 맞게 창을 조정할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/812079/window-height-auto-not-working-as-expected

반응형