none
TextBoxのHorizontalContentAlignmentについて RRS feed

  • 質問

  • お世話になります。

    初めて質問させていただきます。

    TextBoxのHorizontalContentAlignmentですがControlTemplateを使用して作成したTextBoxに効きません。

    以下、コードです。

    <Window x:Class="ControlTemplateTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Window.Resources>
            <ControlTemplate x:Key="rigth">
                <StackPanel>
                    <TextBlock Text="テンプレート" Margin="0,3"/>
                    <TextBox Name="txt" Height="25" Text="1234"
                             HorizontalContentAlignment="Right"
                             VerticalContentAlignment="Center" />
                </StackPanel>
            </ControlTemplate>
        </Window.Resources>
        <StackPanel>
            <Control Name="ctl" Template="{StaticResource rigth}" />
            <TextBlock Text="直接" Margin="0,3"/>
            <TextBox Name="txt" Height="25" Text="1234"
                     HorizontalContentAlignment="Right"
                     VerticalContentAlignment="Center" />
        </StackPanel>
    </Window>

    直接作成したTextBoxには効いています。
    また、VerticalContentAlignmentは効いています。
    なにか間違っているのでしょうか?

    .Netは3.0、3.5で試しました。
    VisualStudio 2008でOSはXPです。


    よろしくお願いいたします。


    2012年7月19日 1:53

回答

  • 私の環境でも.NET Framework 4であれば、HorizontalContentAlignmentが反映されました。
    ちなみに、.NET Framework 3.5でも、TextAlignmentは反映されました。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年7月19日 2:51
    モデレータ

すべての返信

  • Windows 7 ・ Visual Studio 2008 と 2010 で試してみました。

    結果は、Windows 7 & VS2010 なら HorizontalContentAlignment="Right" は反映されますが、
    Windows 7 & VS2008 だと HorizontalContentAlignment="Right" は反映されません。

    また VS2010 でも .NET 4 なら反映されますが、3.5 だと反映されませんでした。ただしどちらもデザイナでは反映されます(苦笑
    これは仕様かも知れません。Connect あたりでこの問題につき報告上がっているかもしれません。


    ひらぽん http://d.hatena.ne.jp/hilapon/

    2012年7月19日 2:39
    モデレータ
  • 私の環境でも.NET Framework 4であれば、HorizontalContentAlignmentが反映されました。
    ちなみに、.NET Framework 3.5でも、TextAlignmentは反映されました。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年7月19日 2:51
    モデレータ
  • 返信、おそくなり、申し訳ないです。
    ご回答、ありがとうございました。
    trapemiyaさんの回答にあります、
    TextAlignment="Right"
    で同じ動作ができることがわかりました。

    ちなみに、Connect では同じような問題は見当たりませんでした。

    2012年7月30日 5:55
  • 返信、おそくなり、申し訳ないです。

    ご回答いただきました、TextAlignment="Right"で代用できました。
    ありがとうございました。

    2012年7月30日 5:56