UWP - 如何将CharacterSpacing应用于PlaceholderText

时间:2016-11-17 16:03:10

标签: textbox uwp uwp-xaml

我想知道有没有办法将TextSpacing应用于TextBox中的PlaceholderText?

我尝试编辑TextBox模板,我注意到ContentPresenter正在显示PlaceholderText,我尝试在其上使用CharacterSpacing,但它不起作用。此外,我尝试了FontStretch,但没有结果。

1 个答案:

答案 0 :(得分:1)

  

我尝试编辑TextBox模板,我注意到ContentPresenter正在显示PlaceholderText,我尝试在其上使用CharacterSpacing,但它无法正常工作

使用ContentControl时,PlaceholderText会显示在default style内。而PlaseholderTextcontent属性的值。 content属性的类型为object,同时,CharaterSpacing属性是字符串的属性。所以这似乎是CharaterSpacing不起作用的原因。由于Text属性的类型,您会发现TextTextBoxAutoSuggestBoxTextBlock属性的控件可以对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}" />

结果:

enter image description here