我想知道有没有办法将TextSpacing应用于TextBox中的PlaceholderText?
我尝试编辑TextBox模板,我注意到ContentPresenter正在显示PlaceholderText,我尝试在其上使用CharacterSpacing,但它不起作用。此外,我尝试了FontStretch,但没有结果。
答案 0 :(得分:1)
我尝试编辑TextBox模板,我注意到ContentPresenter正在显示PlaceholderText,我尝试在其上使用CharacterSpacing,但它无法正常工作
使用ContentControl时,PlaceholderText
会显示在default style内。而PlaseholderText
是content
属性的值。 content
属性的类型为object
,同时,CharaterSpacing
属性是字符串的属性。所以这似乎是CharaterSpacing
不起作用的原因。由于Text
属性的类型,您会发现Text
,TextBox
和AutoSuggestBox
等TextBlock
属性的控件可以对CharaterSpacing
属性生效是string
。
如何将CharacterSpacing应用于PlaceholderText
如果您想在此处CharaterSpacing
应用PlaceholderText
,可以使用TextBox
控件而不是ContentControl
PlaceholderTextContentPresenter
作为新款式不会影响PlaceholderText
功能。但是你需要对外观进行一些改变,让它看起来与以前一样。更新新TextBox
样式的代码,如下所示:
<TextBox
x:Name="PlaceholderTextContentPresenter"
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
Foreground="Gray"
CharacterSpacing="1000"
IsHitTestVisible="False"
BorderThickness="0"
Text="{TemplateBinding PlaceholderText}" />
结果: