1. ホーム
  2. wpf

[解決済み] HorizontalAlignment=Stretch、MaxWidth、Left alignedを同時に使用できますか?

2022-12-15 11:39:36

質問

これは簡単なことのように思えますが、私は困っています。WPFでは、私はそれの親の幅に伸びるテキストボックスが欲しいのですが、最大幅にのみ伸びることができます。問題は、その親の中で左揃えにしたいことです。伸びるようにするには、HorizontalAlignment="Stretch" を使用する必要がありますが、その場合、結果は中央に配置されます。私はHorizontalContentAlignmentで実験してみましたが、それは何もしないようです。

この青いテキスト ボックスをウィンドウのサイズに合わせて拡大し、最大幅を 200 ピクセルにし、左揃えにするにはどうすればよいですか?

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>  
    <TextBox Background="Azure" Text="Hello" HorizontalAlignment="Stretch" MaxWidth="200" />
  </StackPanel>
</Page>

どんな仕掛けがあるの?

解決方法は?

この場合 HorizontalAlignment を左側に設定し MaxWidth を設定し WidthActualWidth に変換します。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel Name="Container">   
    <TextBox Background="Azure" 
    Width="{Binding ElementName=Container,Path=ActualWidth}"
    Text="Hello" HorizontalAlignment="Left" MaxWidth="200" />
  </StackPanel>
</Page>