programing

그리드의 공유 크기 그룹 및 * 크기 조정

lastcode 2023. 4. 27. 22:28
반응형

그리드의 공유 크기 그룹 및 * 크기 조정

사용자 컨트롤이 있습니다.UserControl다음과 같은 열 정의를 가진 그리드가 있습니다.

<Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="B"/>
            <ColumnDefinition Width="*" SharedSizeGroup="C"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="D"/>
            <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="E"/>
            <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="F"/>
            <ColumnDefinition Width="110" SharedSizeGroup="G"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="H"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="I"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="J"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="K"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="L"/>
</Grid.ColumnDefinitions>

저도 있습니다.MainWindow다음 속성이 그리드에 정의된 그리드 자체를 포함합니다.

Grid.IsSharedSizeScope="True"

이제 몇 가지 사용자 컨트롤을 그리드에 추가했습니다.MainWindow(각각 별도의 행으로).제 목표는 서로 다른 사용자 컨트롤의 각 열 너비를 동기화된 상태로 유지하는 것입니다.사용 시 모든 것이 정상적으로 작동합니다.SharedSizeGroup한 가지만 빼고.너비가 다음과 같은 열이 있는 것 같습니다.*정상적으로 작동하지 않습니다.그것은 보기에*열 너비가 동일하게 설정됩니다.Auto대신.

제한 사항/문제가 있습니까?SharedSizeGroup그리고.*사이징?이것이 기둥 폭을 동기화하는 가장 좋은 방법인 것 같지만, 저는 이것을 고칠 수 없을 것 같습니다.

감사해요.

정의 기준입니다.공유 크기 그룹 속성(Microsoft Docs):

크기 공유에 참여하는 열과 행은 별 크기 조정을 고려하지 않습니다.크기 공유 시나리오에서 별 크기 조정은 자동으로 처리됩니다.

별표를 사용할 경우 모든 열의 너비가 같으므로 동일하게 할당해야 합니다.SharedSizeGroup자동 검색 기능이 문제가 되지 않는다면 모두에게:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
    <ColumnDefinition Width="Auto" SharedSizeGroup="B"/>
    <ColumnDefinition Width="*" SharedSizeGroup="StarDontWork"/>
    <ColumnDefinition Width="Auto" SharedSizeGroup="D"/>
    <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="StarDontWork"/>
    <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="StarDontWork"/>
    <ColumnDefinition Width="110" SharedSizeGroup="G"/>
    <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="H"/>
    <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="I"/>
    <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="J"/>
    <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="K"/>
    <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="L"/>
</Grid.ColumnDefinitions>

(이 동작을 통해 다음을 삭제할 수도 있습니다.Width자산의 경우SharedSizeGroup설정됨)


모든 자동 크기 조정 열이 공유 크기 그룹에 있는 경우 모든 별 크기 조정 열의 크기가 범위의 모든 그리드에 남아 있는 사용되지 않은 공간의 양과 동일하고 별 크기 조정 열이 별 크기 열로 분배된다는 것을 추론할 수 있습니다.

간단한 예:

<Grid.ColumnDefinitions>
    <ColumnDefinition SharedSizeGroup="A"/>
    <ColumnDefinition SharedSizeGroup="B" Width="*"/>
    <ColumnDefinition SharedSizeGroup="C"/>
</Grid.ColumnDefinitions>

설명한 바와 같이Width="*"아무것도 하지 않을 것이지만 열로서.0그리고.2동기화됨, 열1또한 동기화되어야 하기 때문에 당신은 그냥 그것을 놓을 수 있습니다.SharedSizeGroup:

<Grid.ColumnDefinitions>
    <ColumnDefinition SharedSizeGroup="A"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition SharedSizeGroup="C"/>
</Grid.ColumnDefinitions>

언급URL : https://stackoverflow.com/questions/4664008/grids-sharedsizegroup-and-sizing

반응형