我是C#和XAML的新手,我正在制作某种阅读应用程序。
所以如果标题需要超过1行,我需要TextBlock
这个词包装。但是当它变得超过2行时,请在其上包裹ScrollView
。
通过这样做,只要1
或2(max)
行高,我就可以紧密对齐其余元素。
如何在XAML或C#中实现这一目标?
答案 0 :(得分:0)
如果您可以使用TextBox
代替TextBlock
,则会更容易。 TextBox
支持滚动并且具有可以关闭的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
,当我得到三行时,我添加了滚动条:
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;
}
}