Последний столбец сетки не имеет автоматического изменения размера сетки - PullRequest
1 голос
/ 29 декабря 2010

У меня проблема с моими TextBoxами, а не с «автоматическим» изменением размера. Я пытаюсь создать форму, которая ведет себя и выглядит как редактор свойств в Visual Studio. Кажется, что происходит, что третий столбец не расширяется, чтобы заполнить все доступное оставшееся пространство в сетке. Изображение ниже, как выглядит моя форма при запуске.

Ширина текстовых полей определяется настройкой MinWidth в третьем операторе ColumnDefinition. Также ширина установлена ​​на «*». При любых других настройках изменение размера, выполненное с помощью GridSplitter, работает неправильно.

alt text

<StackPanel Orientation="Vertical" VerticalAlignment="Top" x:Name="Stacker" Grid.IsSharedSizeScope="True">
    <Expander x:Name="Expand" IsExpanded="True" Header="This is a test of a Second Panel" Width="{Binding Width, ElementName=Stacker}">
        <Grid x:Name="EditGrid1" Margin="3" >
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"  MinWidth="50" SharedSizeGroup="SharedSize1" />
                <ColumnDefinition Width="Auto" SharedSizeGroup="SharedSize2" />
                <ColumnDefinition Width="*" MinWidth="50" x:Name="ValueCol" />
            </Grid.ColumnDefinitions>
            <GridSplitter Grid.Column="1" x:Name="ToolBoxSplitter1" Grid.Row="1" Grid.RowSpan="6" Panel.ZIndex="1" HorizontalAlignment="Stretch" ResizeBehavior="PreviousAndNext" Width="3"/>

            <TextBlock MaxHeight="40" Grid.Column="0" Grid.Row="1" Text="{x:Static lex:DoSomeThingView.Name}" />
            <TextBlock MaxHeight="40" Grid.Column="0" Grid.Row="2" Text="{x:Static lex:DoSomeThingView.Address}" />
            <TextBlock MaxHeight="40" Grid.Column="0" Grid.Row="3" Text="{x:Static lex:DoSomeThingView.Zip}" />
            <TextBlock MaxHeight="40" Grid.Column="0" Grid.Row="4" Text="{x:Static lex:DoSomeThingView.NumberOfDoors}" TextTrimming="CharacterEllipsis" Grid.IsSharedSizeScope="True" />
            <TextBlock MaxHeight="40" Grid.Column="0" Grid.Row="5" Text="{x:Static lex:DoSomeThingView.DoubleNumber}" />
            <TextBox Grid.Column="2" Grid.Row="1" x:Name="UserName1" MaxHeight="50" TextWrapping="Wrap" 
                     VerticalScrollBarVisibility="Auto"  SpellCheck.IsEnabled="True" />
            <TextBox Grid.Column="2" Grid.Row="2" x:Name="Address1" />
            <TextBox Grid.Column="2" Grid.Row="3" x:Name="Zip1" />
            <TextBox Grid.Column="2" Grid.Row="4" x:Name="NumberOfDoors1" />
            <TextBox Grid.Column="2" Grid.Row="5" x:Name="DoubleNumber1" />
        </Grid>
    </Expander>
</StackPanel>

Есть предложения, как это исправить?

1 Ответ

0 голосов
/ 29 декабря 2010

Еще раз проверьте, установлен ли какой-либо стиль в глобальном масштабе, потому что ваш макет отлично работал со мной.

попробуйте переопределить ваш стиль текстового поля локальным ресурсом

<StackPanel.Resources>
   <Style TargetType="{x:Type TextBox}"/>
</StackPanel.Resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...