[英]How to set FontSize of a Textblock, which is in a Viewbox
由於TextBox
位於Viewbox
,因此無法在TextBlock
設置Text
的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>
我可以設置FontSize
所有的第TextBlock
秒,但不是的TextBlock
這是在Viewbox
。
請記住,FontSize設置了文本的實際大小,但是Viewbox在布局和渲染文本后會對其進行縮放。 如果將具有固定的Width和Height的元素放置在Viewbox中,您將看到相同的效果。 Viewbox本身不會更改Width,Height或FontSize屬性,但最終呈現效果會有所不同。
您實際上要查找的是Viewbox本身的初始布局,該布局將使其初始大小等於TextBlock的初始大小,這將有效地將Viewbox的縮放比例設置為1:1。 您可以根據自己的應用程序以多種方式實現此目標(直接在代碼中,使用ValueConverters進行綁定等),但基本方法是測量父元素的初始大小並設置適當的邊距以縮小視圖中的Viewbox。分配給它的布局區域。 然后,這將允許Viewbox更改其父項的大小,因為它會保留您設置的邊距。 還要在Viewbox上查看StretchDirection,MinHeight和MinWidth。
一些示例代碼會有所幫助。 在我的頭頂上方...文本框是否設置為多行? 否則,內部文本可能會與文本框一起延伸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.