WPF текстовое поле максимальная ширина - PullRequest
0 голосов
/ 12 апреля 2019

Я бы хотел, чтобы MyTextBox съел всю ширину. Размер метки будет меняться в зависимости от выбранного языка и расширять первый столбец. Второй столбец сетки включает MyTextBox и должен соответственно расширяться, чтобы использовать всю ширину. Я попытался HorizontalAlignment = "Stretch, но кажется, что размер определяется в соответствии с первой строкой второго столбца (панель стека). Есть идеи?

<TabControl Grid.Row="1"  Margin="0 4 0 0" >
                    <TabItem Style="{DynamicResource MenuLevel2}" Header="Online Meeting">
                        <Grid HorizontalAlignment="Stretch" Width="Auto">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Label VerticalAlignment="Center" Grid.Row="0" Grid.Column="0">Default Passcode</Label>
                            <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" Margin="10 0 0 0" HorizontalAlignment="Stretch" Width="Auto" >
                                <TextBox MaxLength="100"  horizontalAlignment="Stretch" Margin="0 0 10 0"/>
                                <CheckBox  VerticalAlignment="Center" HorizontalAlignment="Stretch" Click="chkBox_OMRandomPIN_Click"/>
                                <Label  Content="Random" Margin="0 1 0 0" Width="56" HorizontalAlignment="Stretch" />
                            </StackPanel>
                        <Label Grid.Row="1" Grid.Column="0"  Content="Default location label" VerticalAlignment="Center" />
                            <TextBox Grid.Row="1" Grid.Column="1" MaxLength="100" Name="MyTextBox" Margin="11,3,0,3" Height="25" HorizontalAlignment="Stretch" />
                        </Grid>
                    </TabItem>

1 Ответ

2 голосов
/ 12 апреля 2019

У вас слишком много автоматических значений ширины.

В частности, столбец, в который входит панель стека.

Это работает для меня:

    <TabControl Grid.Row="1"  Margin="0 4 0 0" >
        <TabItem  Header="Online Meeting">
            <Grid >
                <Grid.RowDefinitions>
                    <RowDefinition Height="32" />
                    <RowDefinition Height="32" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Label VerticalAlignment="Center" Grid.Row="0" Grid.Column="0">Default Passcode</Label>
                <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" Margin="10 0 0 0" HorizontalAlignment="Stretch">
                    <TextBox MaxLength="100" HorizontalAlignment="Stretch" Margin="0 0 10 0"/>
                    <CheckBox  VerticalAlignment="Center" HorizontalAlignment="Stretch" Click="chkBox_OMRandomPIN_Click"/>
                    <Label  Content="Random" Margin="0 1 0 0" Width="56" HorizontalAlignment="Stretch" />
                </StackPanel>
                <Label Grid.Row="1" Grid.Column="0"  Content="Default location label" VerticalAlignment="Center" />
                <TextBox Grid.Row="1" Grid.Column="1" MaxLength="100" Name="MyTextBox" Margin="11,3,0,3" Height="25"  />
            </Grid>
        </TabItem>

Особые замечания

...