2013-01-20 73 views
0

我是C#和XAML的新手,我正在製作某種閱讀應用程序。有條件的TextBlock格式化

所以我需要一個TextBlock該字包裝,如果標題需要超過1行適合。但是,當它變得更多的2行適合,包裝ScrollView就可以了。

通過這樣做,只要它是12(max)行高,我就可以將其他元素緊緊對齊。

如何在XAML或C#中實現此目標?

回答

0

如果您可以使用TextBox而不是TextBlock,那將更容易。 A 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; 
    } 
} 
+0

但是TextBox是一個輸入控件。我想如何處理? – user1510539

+0

根據你需要做什麼,'IsReadOnly =「True」'可能就夠了。否則,網上有很多關於如何以各種不同方式格式化文本框的示例。 –

+0

那麼可以像TextBlock一樣格式化它嗎?那麼表演呢? – user1510539