2015-12-06 4 views
2

Я пробовал эту проблему ViewBox, но для некоторого разрешения результат странный, шрифт слишком большой, и я хочу сохранить свой шрифт, поэтому ViewBox не подходит для этой цели. Это моя структура:Как предотвратить перекрытие текстового блока?

<StackPanel Orientation="Vertical" Grid.Column="0" Grid.Row="5"> 
      <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center">Fattore forma (casa)</TextBlock> 
      <Label Content="40%" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20"></Label> 
</StackPanel> 

<StackPanel Orientation="Vertical" Grid.Column="1" Grid.Row="5" Margin="5,0"> 
      <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center">Fattore forma (fuori)</TextBlock> 
      <Label Content="35%" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20"></Label> 
</StackPanel> 

<StackPanel Orientation="Vertical" Grid.Column="2" Grid.Row="5"> 
      <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center">Totali giocate</TextBlock> 
      <Label Content="9" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20"></Label> 
</StackPanel> 

Сейчас главная проблема, что если я изменить размер окна с минимальным разрешением я получаю текст перекрытием и я хочу избежать этого, что лучшая идея для этого? Я новичок в wpf, поэтому я действительно изучаю, что является лучшим решением для этих проблем. Пример

Изображение:

enter image description here

Новый код, как предложил:

<Grid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="3"> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="*" /> 
            <ColumnDefinition Width="*" /> 
            <ColumnDefinition Width="*" /> 
           </Grid.ColumnDefinitions> 
           <Grid.RowDefinitions> 
            <RowDefinition Height="15" /> 
            <RowDefinition Height="*" /> 
           </Grid.RowDefinitions> 
           <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center" Grid.Column="0" Grid.Row="0">Fattore forma (casa)</TextBlock> 
           <Label Content="40%" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20" Grid.Column="0" Grid.Row="1"></Label> 
           <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center" Grid.Column="1" Grid.Row="0">Fattore forma (fuori)</TextBlock> 
           <Label Content="35%" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20" Grid.Column="1" Grid.Row="1"></Label> 
           <TextBlock TextDecorations="Underline" FontWeight="Bold" HorizontalAlignment="Center" Grid.Column="2" Grid.Row="0">Totali giocate</TextBlock> 
           <Label Content="9" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20" Grid.Column="2" Grid.Row="1"></Label> 
          </Grid> 
+0

Вместо StackPanel используйте Grid или Uniform Grid и определите определения столбцов и строк. – user1672994

+1

Мне кажется, что вы должны предоставить скриншот результата, которым вы управляли. – marcinax

+0

Будет хорошо видеть снимок экрана. И, возможно, второй с желаемым результатом. – Spawn

ответ

2

кажется StackPanel s в Grid с строк и столбцов определений, и вы не вставить весь код.

Однако вы можете использовать TextTrimming="CharacterEllipsis" в TextBlock. Он автоматически добавит точки, когда текст слишком длинный.

или TextWrapping="Wrap", если вы хотите обернуть текст в новую строку.

+0

Кажется идеальным выбором – Dillinger

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