Grid.IsSharedScopeSize несовместим со столбцами * в сетке WPF - PullRequest
2 голосов
/ 02 июля 2011

Я использую IsSharedSizeScope в ItemsControl в WPF, чтобы сохранить одинаковую ширину для каждой строки.

К сожалению, это не совместимо со столбцами Width='*', из-за чего текстовый столбец 'A B C' выходит за пределы конца страницы.

<Border BorderBrush="Red" BorderThickness="1">
    <StackPanel Grid.IsSharedSizeScope="True">

        <Grid HorizontalAlignment="Stretch">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="G1"/>
                <ColumnDefinition Width="Auto" SharedSizeGroup="G2" />
                <ColumnDefinition Width="*"  SharedSizeGroup="G3" />
            </Grid.ColumnDefinitions>

            <TextBlock Text="Col0" Grid.Column="0" Margin="0,0,5,0"/>
            <TextBlock Text="Col1" Grid.Column="1" Margin="0,0,5,0"/>

            <TextBlock Text="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" TextWrapping="Wrap" Grid.Column="2"/> 
        </Grid>

    </StackPanel>                   

</Border>

Это не будет перенесено, но если вы измените Grid.IsSharedScopeSize на false, тогда оно будет работать, но строки будут неравномерными.

Есть ли какой-нибудь умный способ добиться этого, или мне придется вручную устанавливать ширину в текстовом столбце 'A B C'?

(Примечание. Это на самом деле внутри элемента ItemsControl, который не показан)

Ответы [ 2 ]

1 голос
/ 02 июля 2011

Я только что понял, что мне не нужно устанавливать SharedSizeGroup для каждого столбца.Не устанавливая его для * столбца, я могу добиться нужного мне переноса, сохраняя при этом одинаковую ширину столбцов для других столбцов.

К сожалению, я не думаю, что это будет работать для * столбцов, которые не являются последнимив сетке, но я еще не пробовал.

1 голос
/ 02 июля 2011

Я думаю, это может быть похоже на то, с чем я столкнулся здесь: http://blog.alner.net/archive/0001/01/01/grid_sharedsizegroup_doesnt_honor_maxwidth.aspx

У меня есть обходной путь в посте, хотя это не очень красиво.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...