2010-01-15 3 views
0

Я не могу установить FontSize в Text в TextBlock, так как TextBox находится в Viewbox. Зачем?Как установить FontSize из в TextBlock, который находится в Viewbox

<Grid Margin="35,30,35,0" ShowGridLines="False" > 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition MinWidth="270 px" Width="2*"/> 
     <ColumnDefinition Width="5*"/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Border Grid.Row="0" Grid.Column="0" BorderBrush="Black" BorderThickness="1,1,1,0" /> 
    <Viewbox> 
     <TextBlock Margin="10,5,0,5" Grid.Row="0" Grid.Column="0">Team:</TextBlock> 
    </Viewbox> 
    <Border Grid.Row="1" Grid.Column="0" BorderBrush="Black" BorderThickness="1,1,1,0" /> 
    <TextBlock Margin="10,5,0,5" Grid.Row="1" Grid.Column="0">Beschreibung:</TextBlock> 
    <Border Grid.Row="2" Grid.Column="0" BorderBrush="Black" BorderThickness="1,1,1,0" /> 
    <TextBlock Margin="10,5,0,5" Grid.Row="2" Grid.Column="0">Milestone:</TextBlock> 
    <Border Grid.Row="3" Grid.Column="0" BorderBrush="Black" BorderThickness="1,1,1,1" /> 
    <TextBlock Margin="10,5,0,5" Grid.Row="3" Grid.Column="0">Status:</TextBlock> 
    <Border Grid.Row="0" Grid.Column="1" BorderBrush="Black" BorderThickness="0,1,1,0" /> 
    <TextBlock x:Name="tb_Team_dyn" Margin="10,5,0,5" Grid.Row="0" Grid.Column="1" 
       FontWeight="Bold" Text="{Binding Data.Team}" TextWrapping="Wrap"></TextBlock> 
    <Border Grid.Row="1" Grid.Column="1" BorderBrush="Black" BorderThickness="0,1,1,0" /> 
    <TextBlock x:Name="tb_Descr_dyn" Margin="10,5,0,5" Grid.Row="1" Grid.Column="1" 
       FontWeight="Bold" Text="{Binding Data.Description}" TextWrapping="Wrap"/> 
    <Border Grid.Row="2" Grid.Column="1" BorderBrush="Black" BorderThickness="0,1,1,0" /> 
    <TextBlock x:Name="tb_Milestone_dyn" Margin="10,5,0,5" Grid.Row="2" Grid.Column="1" 
       FontWeight="Bold" Text="{Binding Data.Milestone}" TextWrapping="Wrap"/> 
    <Border Grid.Row="3" Grid.Column="1" BorderBrush="Black" BorderThickness="0,1,1,1" /> 
    <StackPanel Margin="10,5,0,5" Grid.Row="3" Grid.Column="1" Orientation="Horizontal"> 
     <Image x:Name="imgSmile" MaxWidth="38" Source="{Binding Data.Smiley}" /> 
     <TextBlock x:Name="tb_Status_dyn" Margin="{Binding Data.SmileyMargin}" 
        Foreground="{Binding Data.Col}" FontWeight="Bold" 
        Text="{Binding Data.Status}" TextWrapping="Wrap"></TextBlock> 
    </StackPanel> 
</Grid> 

Я могу установить FontSize х все TextBlock с, но не от TextBlock, который находится в Viewbox.

+0

Как вы это пробовали? Код? – Matthias

+0

Цель viewbox - растянуть его содержимое ... так что, если вы не хотите, чтобы размер текста в текстовом блоке растягивался, почему viewbox? – sdcoder

+0

Я хочу растянуть размер текстового блока .. но я не могу установить «начальный» размер шрифта. Мое окно запускается максимально, поэтому шрифт очень большой .. но шрифт должен быть меньше .. но я не могу его установить .. – rakete

ответ

2

Имейте в виду, что FontSize устанавливает фактический размер текста, но Viewbox затем масштабирует его после того, как текст будет выложен и отображен. Вы увидите тот же эффект, если поместите элемент с фиксированной шириной и высотой в окне просмотра. В окне просмотра не изменяются сами свойства Width, Height или FontSize, но окончательный рендеринг оказывается другим.

Что вы на самом деле ищете, это первоначальный макет для самого окна просмотра, который сделает его первоначальный размер равным его размеру, чем TextBlock, который будет эффективно устанавливать масштабирование окна просмотра до 1: 1. Вы можете добиться этого несколькими способами в зависимости от вашего приложения (непосредственно в коде, Bindings с ValueConverters и т. Д.), Но основным методом было бы измерение начального размера родительского элемента и установка соответствующих полей для масштабирования окна просмотра в пределах назначенной ему области макета. Это позволит затем Viewbox изменять размер вместе с его родителем, поскольку он поддерживает установленные поля. Также посмотрите на StretchDirection, MinHeight и MinWidth в окне просмотра.

1

Некоторые примеры кода были бы полезны. В верхней части моей головы ... есть текстовое поле, установленное в многострочное? Если внутренний текст не будет растянут вместе с текстовым полем.