2011-07-19 12 views
7

TextBoxのコンテンツをVerticalContentAlignmentプロパティで垂直方向に配置しようとしていますが、効果が全くないようです。テキストは上部にとどまります。誰も私にこれを行う方法を教えてもらえますか?Silverlight:TextBox VerticalContentAlignment = "Center"

は、ここに私のコードです:

<TextBox Grid.Column="1" 
    Grid.Row="0" 
    Width="200" 
    Height="28" 
    VerticalAlignment="Center" 
    VerticalContentAlignment="Center" /> 
+0

http://stackoverflow.com/questions/1491649/text-vertical-alignment-in-wpf-textblockを参照してください。 –

答えて

7

TextBoxの中心をテキストに垂直にすることができます。ただし、ControlTemplateを再適用する必要があります。これを行うために

  1. TextBox Styles and Templates page on MSDNから、適切な<UserControl.Resources>要素にスタイルとのControlTemplateをコピーします。 (このControlTemplateは実際に検証ツールチップ用ですが、変更するControlTemplateはスタイル内にあります)
  2. TextBoxのStyle内でScrollViewer要素を見つけ、VerticalAlignment="Center"プロパティを追加します。

代わりに、ScrollViewerのにプロパティ

VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 

を追加することができます。これにより、VerticalContentAlignmentプロパティを使用してテキストボックスのコンテンツの垂直方向の配置を設定できるようになります。

TextBoxのコンテンツの水平方向の配置も変更したい場合は、同じ方法を使用できます。

-1

XAMLコードは、以下で十分であるべき正しいです:

<TextBlock Text="Centered Text" VerticalAlignment="Center" /> 

はあなたのグリッド外のコードを試してみてくださいことはできますか?

グリッドで定義した属性を確認すると、おそらく動作が発生します。完全なXAMLコードを投稿できますか?

+0

あなたのコードは、テキストを含むテキストのサイズを正確に持つTextBlockを生成するので、テキストは中央に配置されます。しかし、_TextBox_を使用し、Heightを30に設定しても問題は解決しません。 –