Я хочу узнать, как использовать fontstretch в моих приложениях wpf.Работа с fontstretch в wpf
Я создал этот простой пользовательский контроль, рамку с закругленными углами с текстовым блоком. Я хочу растянуть текст текстового блока, чтобы заполнить мою границу. Я хочу избежать использования элемента управления viewbox для этого.
это мой UserControl 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 является OpenType так он поддерживает растяжение. Я попытался использовать горизонтальные/вертикальные значения выравнивания «Stretch», но это не помогло. Не уверен, что я сделал неправильно, но я подумал, что кто-то на этом сайте может объяснить, почему он не растягивается для меня и как его исправить.
Спасибо, что прочитали мое сообщение.
UltraCondensed, похоже, все хлынет, но похоже, что Arial действительно не поддерживает многое другое, кроме этого конкретного значения. Я видел этот поток, на который вы ссылались, где я узнал, что шрифты OpenType должны использоваться. Я попробую scaletransform и посмотрю, может ли он соответствовать моим потребностям. Я не уверен, что понимаю, почему инфраструктура сохранила свойство fontstretch, если scaletransform заканчивается тем, что вы используете, чтобы сделать что-то вроде этого? – TWood
WPF не имеет контроля над тем, какие шрифты поддерживают определенные функции ... Я думаю, что это действительно больше вопрос, почему создатели шрифтов не предоставляют все варианты вариантов. – Sheridan
Похоже, что скальтрансформ будет тем, что я должен использовать. Поддержка лучше с этим методом вместо fontstretch. Теперь то, что мне нужно для работы, это написать конвертер для вычисления значения масштаба, заданного различными размерами моего usercontrol. Похоже на то, что может делать viewbox, но, надеюсь, с меньшими накладными расходами. – TWood