2011-10-08 30 views
1

我希望我的TextBox的角落有CornerRadius = 12。我使用ControlTemplate,一切都很好,但當我寫東西時,文本框中的文本顯示空格或點。如何正確使用WP7 Silverlight中的模板在TextBox中顯示文本?

下面是代碼:

 <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> 

我應該改變或其他的方式,我可以這樣做?

回答

2

問題是您的ControlTemplate中的TextBox根本不夠高,無法正確顯示文本。你所看到的不是點或空格,而是字母的上半部分,這些字母會在不再可見的地方向下顯示。要正確渲染文本,您必須增加TextBox的高度或減小字體的大小。

下面的模板顯示了一些可能的修改(你內心TextBox):

<TextBox Text="{TemplateBinding Text}" Height="71" FontSize="{TemplateBinding FontSize}" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" Margin="-7,-8" BorderThickness="1" /> 
  • Height="71" - 這只是使文本框足夠高,以正確地呈現文本。

  • FontSize="{TemplateBinding FontSize}" - 也綁定到字號,這樣可以使你的文本對象屬性更小的在Visual Studio(例如將其設置爲FontSize="{StaticResource PhoneFontSizeSmall}";這樣就可以減少一些像素的文本框的高度)

  • Margin="-7,-8" - 減小TextBox和Border之間的距離,使控件更緊湊。

+0

謝謝!)))))))))))))) – Vahan

+0

不客氣:D –

相關問題