我希望TextBox
的角落CornerRadius
= 12。我使用ControlTemplate
,一切都很好,但是当我写东西时文本框中的文字显示空格或点。
以下是代码:
<TextBox x:Name="UsernameTextBox" Text="{Binding Username, Mode=TwoWay}" Background="White" BorderBrush="#FF9ED3C1" >
<!--<TextBox.Text>
<Binding ElementName="username" ></Binding>
</TextBox.Text>-->
<TextBox.Template>
<ControlTemplate TargetType="TextBox">
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="12" Margin="12" >
<TextBox Text="{TemplateBinding Text}" Height="48" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" />
</Border>
</ControlTemplate>
</TextBox.Template>
</TextBox>
我应该改变什么或者我可以采用哪种其他方式?
答案 0 :(得分:2)
问题在于TextBox
中的ControlTemplate
根本不足以正确显示文字。你所看到的不是点或空格,而是字母的上半部分,它们显示在它们不再可见的地方。要正确呈现文本,您必须增加TextBox
的高度或减小字体的大小。
以下模板显示了一些可能的修改(对您的内部TextBox
):
<TextBox Text="{TemplateBinding Text}" Height="71" FontSize="{TemplateBinding FontSize}" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" Margin="-7,-8" BorderThickness="1" />
Height="71"
- 这只会使TextBox足够高,以便正确呈现文字。
FontSize="{TemplateBinding FontSize}"
- 也绑定到FontSize,因此您可以在Visual Studio中的对象属性中缩小文本(例如将其设置为FontSize="{StaticResource PhoneFontSizeSmall}"
;这样你就可以将TextBox高度减少几个像素)
Margin="-7,-8"
- 缩短TextBox和Border之间的距离,使控件更加紧凑。