0

次のテキスト ボックス:

<TextBlock Text="A really long sentence" TextTrimming="WordEllipsis" 
           TextWrapping="WrapWithOverflow" Height= "40" />

高さは 40 ピクセルで、コンテンツが大きくなってもサイズは変更されません。上記の XAML からプロパティを削除するだけHeightで、この機能が追加されます。ここで、このプロパティをプログラムで「削除」する必要があります。つまり、TextBox の高さはデフォルトで 40 ピクセルですが、特定のボタンがクリックされたときに、TextBox をそのすべてのコンテンツに合わせて拡張する必要があります。Height プロパティを削除するにはどうすればよいですか? nullに設定しようとしましたが、うまくいきません。

4

2 に答える 2

0

を使用できますDouble.NaN。これにより、高さが同等に設定されますAuto

TextBoxWidthProperty = double.NaN;
于 2013-11-09T06:44:30.813 に答える
0

( msdn ) に設定Heightし、制御を使用する必要があります。double.NaNGrid

許容される Double 値に加えて、このプロパティは Double.NaN にすることもできます。これは、コードで自動サイズ変更動作を指定する方法です。XAML では、値を文字列 "Auto" (大文字と小文字を区別しない) に設定して、自動サイズ変更動作を有効にします。自動サイズ変更動作は、要素が利用可能な高さを埋めることを意味します。ただし、特定のコントロールは、特に再度有効にしない限り、自動サイズ変更動作を無効にする既定のテーマ スタイルを通じて既定値を頻繁に提供することに注意してください。

例:

<Grid Background="Red">
    <Grid.RowDefinitions>
        <RowDefinition Height="30" />
        <RowDefinition MinHeight="40" Height="Auto" />
    </Grid.RowDefinitions>
    <Button Content="Expand" Click="Button_Click_2" />
    <TextBlock x:Name="tbSentence" Text="A really long sentence" TextTrimming="WordEllipsis" 
            TextWrapping="WrapWithOverflow" Height= "40" Background="Orange" Grid.Row="1" />
</Grid>

コードビハインド:

private void Button_Click_2(object sender, RoutedEventArgs e)
    {
        tbSentence.Height = double.NaN;
        tbSentence.Text = @"A really long sentence
A really long sentence
A really long sentence";      
    }
于 2013-11-09T06:45:24.007 に答える