2010-01-15 3 views
0
TextBox TextBoxViewbox에 있기 때문에 TextBlock에서 TextFontSize를 설정할 수 없습니다. 왜?

Viewbox에있는 Textblock의 FontSize를 설정하는 방법

<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> 

모든 TextBlockFontSize을 설정할 수 있지만 Viewbox에있는 TextBlock는 설정할 수 없습니다.

+0

어떻게 시도하나요? 암호? – Matthias

+0

뷰 박스의 목적은 내용을 늘리는 것입니다. 따라서 텍스트 블록의 텍스트 크기가 늘어나지 않게하려면 왜 뷰 박스를 사용해야합니까? – sdcoder

+0

나는 textblock의 크기를 늘리고 싶습니다. 그러나 "시작"글꼴 크기를 설정할 수 없습니다. 내 윈도우가 최대화되어 글꼴이 너무 커 ..하지만 글꼴 크기는 작아야합니다 ..하지만 설정할 수 없습니다 .. – rakete

답변

2

FontSize는 텍스트의 실제 크기를 설정하지만 텍스트가 배치되어 렌더링 된 후에는보기 상자가 크기를 조정합니다. Viewbox에 고정 너비와 높이가있는 요소를 배치하면 동일한 효과가 나타납니다. Viewbox는 너비, 높이 또는 FontSize 속성 자체를 변경하지 않지만 최종 렌더링은 다르게 표시됩니다.

실제로 찾고있는 것은 초기 크기를 TextBlock의 초기 크기와 같게 만드는 Viewbox 자체의 초기 레이아웃입니다.이 레이아웃은 뷰 박스의 비율을 효과적으로 1 : 1로 설정합니다. 응용 프로그램에 따라 (코드에서 직접, ValueConverters로 바인딩 등) 여러 가지 방법으로이 작업을 수행 할 수 있지만 기본 방법은 부모 요소의 초기 크기를 측정하고 적절한 여백을 설정하여 레이아웃 영역이 할당됩니다. 그러면 Viewbox는 부모가 설정 한 여백을 유지하면서 크기를 변경할 수 있습니다. 또한 Viewbox의 StretchDirection, MinHeight 및 MinWidth를 살펴보십시오.

1

몇 가지 샘플 코드가 유용 할 것입니다. 내 머리 꼭대기에서 ... 텍스트 상자가 여러 줄로 설정되어 있습니까? 그렇지 않으면 내부 텍스트가 텍스트 상자와 함께 늘어납니다.

관련 문제