可滚动TextBlock大小合适2行高

Hol*_*Dan 6 silverlight wpf xaml

我需要显示文本 - 最多-2行 - 没有可见的顶点滚动,然后在大于2行时显示滚动:

<Border BorderBrush="Black" BorderThickness="1" Grid.Row="1" Grid.ColumnSpan="2">
    <ScrollViewer VerticalScrollBarVisibility="Auto" MaxHeight="40">
        <TextBlock Text="{Binding RoadsString}" Style="{StaticResource WrapTextStyle}"/>
    </ScrollViewer>
</Border>
Run Code Online (Sandbox Code Playgroud)

我可以尝试MaxHeight值直到看起来正确 - 但我更喜欢它适应任何指定的字体和...精确.最好是在XAML中.

我可以将MaxHeight绑定到字体大小吗?或者可能有一个我没有找到的TextBlock属性.

谢谢,丹

pub*_*cgk 4

只读无边框文本框可以作为文本块使用吗?

<TextBox MinLines="2" MaxLines="2" IsReadOnly="True" BorderThickness="0"
VerticalScrollBarVisibility="Auto" Width="200" VerticalAlignment="Top" />
Run Code Online (Sandbox Code Playgroud)

MinLinesMaxLines将限制文本框始终只有两行(除非显式设置 Height - 如果在 TextBox 上显式设置 Height 属性,则忽略 MaxLines 和 MinLines 属性值)。

我发现这种方法的一个问题是文本框的文本不会与其他文本块左对齐(如果您将它们放置在网格的同一列中)。

编辑:刚刚注意到您实际上想要文本块的边框。为此,您可以去掉 BorderThickness="0" 部分。