我是 C# 和 XAML 的新手,我正在制作某种阅读应用程序。
TextBlock
因此,如果标题需要超过 1 行来适应,我需要一个自动换行。但是当它变得超过 2 行以适应时,将 a 包裹ScrollView
在上面。
通过这样做,我可以将其余元素紧密对齐,只要它是1
或2(max)
行高。
如何在 XAML 或 C# 中实现这一点?
我是 C# 和 XAML 的新手,我正在制作某种阅读应用程序。
TextBlock
因此,如果标题需要超过 1 行来适应,我需要一个自动换行。但是当它变得超过 2 行以适应时,将 a 包裹ScrollView
在上面。
通过这样做,我可以将其余元素紧密对齐,只要它是1
或2(max)
行高。
如何在 XAML 或 C# 中实现这一点?
如果您可以使用 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;
}
}