0

我是 C# 和 XAML 的新手,我正在制作某种阅读应用程序。

TextBlock因此,如果标题需要超过 1 行来适应,我需要一个自动换行。但是当它变得超过 2 行以适应时,将 a 包裹ScrollView在上面。

通过这样做,我可以将其余元素紧密对齐,只要它是12(max)行高。

如何在 XAML 或 C# 中实现这一点?

4

1 回答 1

0

如果您可以使用 aTextBox而不是 a TextBlock,那会更容易。ATextBox支持滚动并具有LineCount可以关闭的属性。因此,例如,我将几个控件放入StackPanel

<Grid>
    <StackPanel HorizontalAlignment="Left" Height="100" Margin="105,127,0,0" VerticalAlignment="Top" Width="184">
        <TextBox Height="23" TextWrapping="Wrap" Text="TextBox" Name="TextBox1"/>
        <Button Content="Button" Click="Button_Click_2"/>
    </StackPanel>
</Grid>

然后我有一些代码来更新文本。当我达到 2 行时,我增长了TextBox,当我达到 3 行时,我添加了滚动条:

private void Button_Click_2(object sender, RoutedEventArgs e)
{
    TextBox1.Text += "More Text";

    if (TextBox1.LineCount >= 2)
    {
        TextBox1.Height = 38; 
    }
    if (TextBox1.LineCount >= 3)
    {
        TextBox1.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
    }
}
于 2013-01-20T03:36:42.697 回答