2

我想学习如何在我的 wpf 应用程序中使用 fontstretch。

我创建了这个简单的用户控件,一个带有文本块的圆角边框。我想拉伸文本块的文本以填充我的边框。我想避免使用视图框控件来执行此操作。

这是我的用户控件 xaml

 <UserControl x:Class="DisplayObject"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="400" Background="Transparent">
    <UserControl.Resources>
        <LinearGradientBrush x:Key="BackGroundBrush" StartPoint="0,0" EndPoint="1,1">
            <GradientStop Color="AntiqueWhite" Offset="0"/>
            <GradientStop Color="White" Offset="0.45" />
            <GradientStop Color="Silver" Offset="1" />
        </LinearGradientBrush>
    </UserControl.Resources>
    <Border x:Name="LayoutRoot" CornerRadius="12" Background="{StaticResource BackGroundBrush}" BorderBrush="Black" BorderThickness="2">
        <TextBlock TextAlignment="Center" Text="{Binding Path=DisplayText}" 
                   Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Center" 
                   TextWrapping="Wrap" FontSize="12" FontFamily="Arial" FontStretch="UltraExpanded"/>
    </Border>
</UserControl>

根据我从网上阅读的资料来看,Arial 字体是一种开放式字体,因此它支持拉伸。我尝试使用“拉伸”的水平/垂直对齐值,但这没有帮助。不知道我做错了什么,但我想这个网站上的某个人可能能够解释为什么它不适合我,以及如何解决它。

感谢您阅读我的帖子。

4

1 回答 1

4

Arial 字体似乎不支持FontStretch. UltraExpanded尝试使用 的值UltraCondensed来查看它的工作原理:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0" Text="{Binding DisplayText}" FontSize="30" 
        FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center" />
    <TextBlock Grid.Row="1" Text="{Binding DisplayText}" FontSize="30" 
        FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center" 
        FontStretch="UltraCondensed" />
</Grid>

看看为什么 FontStretch 在 WPF 中不起作用?发布以找出使用这个很少使用的属性的替代方法。

于 2013-08-07T13:10:01.320 回答