IT TIP

콘텐츠에 대한 WPF 제어 크기?

itqueen 2020. 11. 21. 08:27
반응형

콘텐츠에 대한 WPF 제어 크기?


내용에 따라 크기를 변경하기 위해 WPF 컨트롤을 만들려면 어떻게해야합니까?


대부분의 컨트롤의 Auto경우 XAML에서 높이와 너비를 설정하면 콘텐츠에 맞게 크기가 조정됩니다.

코드에서 너비 / 높이를 double.NaN. 자세한 내용은 FrameworkElement.Width , 특히 "설명"섹션을 참조하십시오.


나는 내 창의 너비를 지정했지만 높이를 Auto. 자식 DockPanelVerticalAlignmentTop으로 설정하고 Window는 VerticalContentAlignment를 Top으로 설정했지만 Window는 여전히 콘텐츠보다 훨씬 더 큽니다.

Snoop을 사용 ContentPresenter하여 창 (내가 거기에 넣은 것이 아닌 창의 일부)이 VerticalAlignment설정되어 Stretch있고 전체 창을 다시 생각하지 않고 변경할 수 없다는 것을 발견했습니다!

많은 좌절 끝에 SizeToContent속성을 발견했습니다.이 속성을 사용하여 콘텐츠의 크기에 따라 Window 크기를 세로, 가로 또는 둘 다로 지정할지 지정할 수 있습니다. 이제 모든 크기가 멋지게 조정됩니다. 믿을 수 없습니다. 그 부동산을 찾는 데 너무 오래 걸렸습니다!


그리드 또는 유사 구성 요소를 사용하는 경우 : XAML에서 그리드의 요소에 Grid.Row 및 Grid.Column이 정의되어 있는지 확인하고 여백이 없는지 확인합니다. 디자이너 모드 또는 Expression Blend를 사용한 경우 특정 셀 대신 전체 그리드를 기준으로 여백을 할당했을 수 있습니다. 셀 크기 조정과 관련하여 나머지 공간을 채우는 추가 셀을 추가합니다.

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

다른 컨테이너에 의해 제한되지 않고 자유 형식으로 페이지에있는 사용자 컨트롤이 있었고 사용자 컨트롤 내의 내용은 자동 크기가 아니라 사용자 컨트롤이 전달 된 전체 크기로 확장됩니다.

사용자 컨트롤이 내용에 맞게 크기를 조정하도록하기 위해 높이에 대해서만 다음과 같이 자동 크기로 설정된 행에 그리드에 배치했습니다.

<Grid Margin="0,60,10,200">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <controls1:HelpPanel x:Name="HelpInfoPanel"
                         Visibility="Visible"
                         Width="570"
                         HorizontalAlignment="Right"
                         ItemsSource="{Binding HelpItems}"
                         Background="#FF313131" />
</Grid>

참고 URL : https://stackoverflow.com/questions/1746431/wpf-control-size-to-content

반응형