2013-09-25 3 views
0

У меня возникла странная проблема с свойством rowSpan сетки.Мой rowSpan не принимает 2 строки

я получил текст, который будет принимать более чем одну строку, так что я сказал его стек Spanel, RowSpan="2", поэтому текст может быть на нескольких линии, используя Обтекание к, например:

<StackPanel Grid.Row="0" 
      Grid.RowSpan="2" 
      Orientation="Horizontal"> 
    <TextBlock x:Name="tbConfirm" 
       Text={Binding TextConfirm} 
       HorizontalAlignment="Center" 
       TextWrapping="Wrap" 
       VerticalAlignment="Center" 
       Grid.RowSpan="2" 
       FontSize="12"> 
    </TextBlock> 
</StackPanel> 

Свойство TextConfirm содержит текст, который должен содержать две строки (я пытался с текстом без привязки видеть, заполняется ли он.

Но, несмотря на мой RowSpan и мою TextWrapping, он все еще находится на одной строке и не понимает, почему.

Когда я делаю колонку sp an, он будет определять количество столбцов, но почему строка не работает?

Существует в Сетка, 5 столбцов (ширина авто) и 5 ​​строк (высота авто).

Если у меня есть один текстовый блок, один текстовый блок и еще один текстовый блок.

Как я могу автоматически перейти в новую строку? Неопределенная ширина для двух текстовых блоков и определение ширины для текстового поля.

Это всего лишь пример, на данный момент я его не написал.

<StackPanel Grid.Row="0" 
       Grid.RowSpan="2" 
       Orientation="Horizontal"> 
     <TextBlock x:Name="tbConfirm" 
        Text={Binding TextConfirm} 
        HorizontalAlignment="Center" 
        TextWrapping="Wrap" 
        VerticalAlignment="Center" 
        Grid.RowSpan="2" 
        FontSize="12"> 
     </TextBlock>   

<textBox width ="200"/> 
<TextBlock x:Name="tbConfirm2" 
        Text={Binding TextConfirm2} 
        HorizontalAlignment="Center" 
        TextWrapping="Wrap" 
        VerticalAlignment="Center" 
        Grid.RowSpan="2" 
        FontSize="12"> 
     </TextBlock> 
    </StackPanel> 

Будет ли это, автоматически переходить на новую линию, если необходимо? Или мне нужно определить строки и столбцы в xaml?

спасибо.

+0

Возможно, это связано с шириной TextBlock. – BenCr

+0

Вы имеете в виду, что он не наследует контейнеры int в ширину для максимальной ширины? Действительно, я должен это определить. Но так, мне больше не нужно устанавливать RowSpan, если MaxWidh и Wrapping правильно определены? –

+0

Я не уверен, что вы просите, вам не нужен RowSpan для обертывания текста, высота строки будет расти только в зависимости от его значения содержания/высоты. – BenCr

ответ

0

Я не уверен, правильно ли я понял вопрос, но чтобы получить перенос текста, вам не нужно охватывать несколько строк. Из того, что я читал, вы установили ширину столбца в auto, чтобы он «свободно» увеличивал «TextBlock». Если вы хотите получить обработку обертывания, вы должны определить фиксированную ширину либо на столбце, либо на самом TextBlock (и сохранить TextWrapping="Wrap").

+0

Если вы посмотрите пример в моем комментарии выше, t нужно определить фиксированную ширину, на самом деле это может быть фиксированная ширина, вызывающая проблему, в примере, который я опубликовал, не указаны какие-либо ширины, элементы такие же широкие, как их родители, и 'TextWrapping =" Wrap "' просто работает – BenCr

+0

Это работает, потому что в конечном счете контейнер верхнего уровня ограничивает ширину, в этом случае это окно. Если бы текст был короче фактического размера окна, он бы не обернулся. В любом случае честный комментарий @BenCr и хорошая работа с кодом! – dmusial

+0

Вы правы, я не хотел предполагать, что вы были неправы, я думаю, что @Zaphod имеет контейнерный элемент, который шире, чем его родительский, потому что, как мы сказали, TextWrapping = «Wrap» должен работать. – BenCr

-1

пытаются связывать ширину TextBlock тому из родителей, как вы не хотите, чтобы превысить

<TextBlock x:Name="tbConfirm" 
      Text="asasddadsa adassdasd asdasdasdsa asdasdssd asdasdasjdahsjakdhksajdhjsaalskasj skjdsajkdhajhasaskjhdsahsakdasjdhsajdhasjdhkjsad" 
      HorizontalAlignment="Center" 
        Foreground="Black" 

        Width="{Binding ActualWidth, ElementName=stackPanelParent}" 
      TextWrapping="Wrap" 
      VerticalAlignment="Center" 
      FontSize="12"> 

     </TextBlock> 

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

+0

Это не обязательно – BenCr

+0

который не нужен ??? Привязка к родительской высоте? – Anobik

+0

Не нужно связывать ширину текстового блока, чтобы он обертывался. Текстовый блок автоматически будет таким же широким, как и родительский. Проблема здесь, вероятно, в том, что родитель слишком широк. – BenCr

Смежные вопросы