перенос текста в сетке на панели просмотра? - PullRequest
0 голосов
/ 17 марта 2011

Я хочу написать анкету. Это будет во вкладке. Я хотел бы три столбца: номер вопроса, вопрос, поле группы. У меня их будет 14, так что у всего должен быть свой ряд. Текст в столбце 2 иногда бывает достаточно длинным для переноса. Я чувствую, что перепробовал каждую комбинацию, но у меня либо очень большой, либо очень маленький шрифт. Я хотел бы иметь возможность изменить размер окна. Все, что я сделал в последнее время, изменяет размеры по вертикали, но не по горизонтали. Я очень новичок, поэтому заранее прошу прощения за интервалы.

<Grid>
  <Label Name="ADCS" Content="ADCS" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="6" />
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="270*" />
            <ColumnDefinition Width="54*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
            <Viewbox>
            <StackPanel HorizontalAlignment="Left" Name="stackPanel2">
                <Label Name="a1" Content="1." Grid.Column="1" Grid.Row="1"   Margin="6" />
                <Label Name="lblADCS1" Grid.Column="2" Grid.Row="1" Margin="6" />
                <TextBlock 
                        Text="Do you like cheese?" TextWrapping = "WrapWithOverflow">
                </TextBlock>
                <GroupBox Header="ADCS1" Grid.Row="1" Grid.Column="3">
                        <StackPanel Orientation="Horizontal" >
                            <RadioButton Margin ="5" Name="Yes__1" />
                            <RadioButton Margin ="5" Name="No__1" />
                            <RadioButton Margin ="5" Name="Maybe__1" />
                            <RadioButton Margin ="5" Name="Clear__1" />
                        </StackPanel>
                    </GroupBox>
                <Label Name="a2" Content="2." Grid.Column="1" Grid.Row="2" Margin="6" />
                <Label Name="lblADCS2" Grid.Column="2" Grid.Row="2" Margin="6">
                    <TextBlock 
                        Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua?" 
                        TextWrapping = "WrapWithOverflow">
                    </TextBlock>
                </Label>
                <GroupBox Header="ADCS2" Grid.Column="3" Grid.Row="2" >
                    <StackPanel Orientation="Horizontal" >
                        <RadioButton Margin ="5" Name="Yes__2" />
                        <RadioButton Margin ="5" Name="No__2" />
                        <RadioButton Margin ="5" Name="Maybe__2" />
                        <RadioButton Margin ="5" Name="Clear__2" />
                    </StackPanel>
                </GroupBox>
            </StackPanel>
        </Viewbox>
    </Grid>
</Grid>

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Я немного изменил ваш код:

  • удалил вложенные Viewbox, Grid и StackPanel, не уверен, зачем вам все они нужны здесь
  • сделал StackPanel растянутым
  • добавлен просмотрщик прокрутки

посмотрите, будет ли он работать на вас

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

    <Label Grid.Row="0" Name="ADCS" Content="ADCS" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="6" />

    <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
        <StackPanel HorizontalAlignment="Stretch" Name="stackPanel2" >
            <Label Name="a1" Content="1." Margin="6" />
            <Label Name="lblADCS1" Margin="6">
                <TextBlock 
                    Text="Do you like cheese?" TextWrapping = "WrapWithOverflow">
                </TextBlock>
            </Label>
            <GroupBox Header="ADCS1">
                <StackPanel Orientation="Horizontal" >
                    <RadioButton Margin ="5" Name="Yes__1" />
                    <RadioButton Margin ="5" Name="No__1" />
                    <RadioButton Margin ="5" Name="Maybe__1" />
                    <RadioButton Margin ="5" Name="Clear__1" />
                </StackPanel>
            </GroupBox>
            <Label Name="a2" Content="2." Margin="6" />
            <Label Name="lblADCS2" Margin="6">
                <TextBlock 
                            Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua?" 
                            TextWrapping = "WrapWithOverflow">
                </TextBlock>
            </Label>
            <GroupBox Header="ADCS2" >
                <StackPanel Orientation="Horizontal" >
                    <RadioButton Margin ="5" Name="Yes__2" />
                    <RadioButton Margin ="5" Name="No__2" />
                    <RadioButton Margin ="5" Name="Maybe__2" />
                    <RadioButton Margin ="5" Name="Clear__2" />
                </StackPanel>
            </GroupBox>
        </StackPanel>
    </ScrollViewer>
</Grid>

надеюсь, это поможет, с уважением

0 голосов
/ 17 марта 2011

Если вы собираетесь сделать это для 14 вопросов, я предлагаю решение, основанное на данных.Напишите класс Вопроса и добавьте 14 объектов Вопроса в коллекцию и свяжите базу данных с элементом управления с некоторой табличкой данных.

В любом случае, ниже приведена сетка, которая показывает два вопроса с переносом текста.

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Label Grid.Column="0" Grid.Row="0" Content="1" /> <!--Question Number-->
    <TextBlock Grid.Column="1" Grid.Row="0" TextWrapping="WrapWithOverflow" Text="Do you like cheese?" /> <!--Question-->
    <GroupBox Header="ADCS1" Grid.Row="0" Grid.Column="2"> <!--Group Box-->
        <StackPanel Orientation="Horizontal" >
            <RadioButton Content="A" />
            <RadioButton Content="B" />
            <RadioButton Content="C" />
        </StackPanel>
    </GroupBox>
    <Label Grid.Column="0" Grid.Row="1" Content="1" /> <!--Question Number-->
    <TextBlock Grid.Column="1" Grid.Row="1" TextWrapping="WrapWithOverflow" Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua?" /> <!--Question-->
    <GroupBox Header="ADCS1" Grid.Row="1" Grid.Column="2"> <!--Group Box-->
        <StackPanel Orientation="Horizontal" >
            <RadioButton Content="A" />
            <RadioButton Content="B" />
            <RadioButton Content="C" />
        </StackPanel>
    </GroupBox>
</Grid>
...