wpf 如何缩小文本块中的字体大小以适应内容宽度并保持字体纵横比

enxuqcxy  于 2022-11-30  发布在  其他
关注(0)|答案(4)|浏览(398)

我们的交易是这样的:我有一行XAML

<Viewbox Canvas.Left="27" Canvas.Top="479" Width="377" Height="21" Stretch="Fill" 
       StretchDirection="DownOnly" VerticalAlignment="Top" HorizontalAlignment="Left">
  <TextBlock Name="TitleText" TextWrapping="Wrap" TextAlignment="Left" FontSize="14" 
           FontStretch="Normal"  FontStyle="Normal" Foreground="White" Width="377" >some long text here
  </TextBlock>
</Viewbox>

我想让字体缩小以适应内容的高度和宽度。现在发生的是字体缩小,但Viewbox也会水平缩放内容,使文本框的宽度变小。下面是一个示例
Example image
如果我设置Stretch=“Fill”,文本将填充宽度,但只缩小字体大小的高度,使字体看起来可怕的丑陋Like this
是否可以缩小文本以适合框架,从而使用容器的整个宽度和高度?

pdsfdshx

pdsfdshx1#

不能将视图框的StretchDirection属性设置为“DownOnly”。此设置会导致内容只垂直拉伸。

dwbf0jvd

dwbf0jvd2#

这就是你想要的吗?

<Viewbox Stretch="Uniform">
    <TextBlock Name="TitleText" TextWrapping="Wrap" TextAlignment="Left" FontSize="14" 
       FontStretch="Normal"  FontStyle="Normal" Foreground="White" Width="377">
       some long text here
    </TextBlock>
</Viewbox>
vcirk6k6

vcirk6k63#

这里有一个使用第二个ViewBox的可能解决方案:

<Viewbox Canvas.Left="27" Canvas.Top="479" Width="377" Height="21" Stretch="Fill" 
        StretchDirection="DownOnly" VerticalAlignment="Top" HorizontalAlignment="Left">
   <Viewbox Stretch="Fill" Width="Auto" Height="Auto">
       <TextBlock Name="TitleText" TextWrapping="Wrap" TextAlignment="Left" FontSize="14" 
            FontStretch="Normal"  FontStyle="Normal" Foreground="White" Width="377" >some long  text here
       </TextBlock>
   </Viewbox>
 </Viewbox>
tzcvj98z

tzcvj98z4#

从Marcus继续工作:

<Viewbox Canvas.Left="27" Canvas.Top="479" Width="377" Height="21" Stretch="Fill" 
        StretchDirection="DownOnly" VerticalAlignment="Top" HorizontalAlignment="Left">
   <Viewbox Stretch="Fill" Width="Auto" Height="Auto">
       <TextBlock Name="TitleText" TextWrapping="Wrap" TextAlignment="Left" FontSize="14" 
            FontStretch="Normal"  FontStyle="Normal" Foreground="White" Width="377" >some long  text here
       </TextBlock>
   </Viewbox>
 </Viewbox>

我把它改成了
拉伸=“均匀”

拉伸方向=“两者”
而且结果看起来很棒,没有垂直拉伸单词。

相关问题