文本块的高度和宽度根据文本

时间:2014-04-15 16:57:57

标签: c# xaml windows-phone-8

是否可以根据文本设置文本块的高度和宽度?文本是否动态地提供给文本块?

 TextBlock myTextBlockj = new TextBlock() 
   { Text = "Hello World", 
     Width =150, 
     Height = 40, 
     FontSize = 20 
   };

文本块的文本是“Hello World”。我想设置与text相同大小的文本块的宽度。如果文本改变,文本块的宽度应该改变。

有人对此有所了解吗?

3 个答案:

答案 0 :(得分:2)

你需要的只是TextWrapping = TextWrapping.Wrap

在代码中:

TextBlock myTextBlockj = new TextBlock() 
{
    Text = "Hello World", 
    HorizontalAlignment = HorizontalAlignment.Left, 
    VerticalAlignment = VerticalAlignment.Top, 
    TextWrapping = TextWrapping.Wrap
};

在Xaml中:

<TextBlock Text="Hello world" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" />

此外,如果文本超出可用空间,您可能需要TextTrimming

答案 1 :(得分:0)

您所要做的就是将VerticalAlignment和Horizo​​ntalAlignments设置为拉伸以外的其他内容。

以下是一页示例:

<Window x:Class="TextblockMinSize.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="Hello, world!" HorizontalAlignment="Left" VerticalAlignment="Top"/>
    </Grid>
</Window>

在代码中你有:

TextBlock myTextBlockj = new TextBlock()
{
    Text = "Hello World",
    HorizontalAlignment = HorizontalAlignment.Left,
    VerticalAlignment = VerticalAlignment.Top
};

答案 2 :(得分:0)

对于身高,你可以尝试

LineHeight="Auto"