2013-08-01 49 views
0

我想查看最後添加的文本塊的內容。這意味着當我添加更多文本時,我想要自動滾動到最後並查看隱藏的內容......就像在Windows計算器中一樣。自動滾動到WPF中文本塊的末尾

在計算器中,當我輸入更多數字時,它只顯示最後輸入的數字。以前輸入的數字在沒有足夠空間時隱藏。我想要做同樣的事情..

有人可以幫我嗎?

+0

一個文本框內置了這個功能。是否可以使用它呢? – Shoe

回答

1

你是指TextBox,而不是TextBlock? TextBox的默認行爲是在輸入更多文本時顯示最近的文本。

Window x:Class="textboxscrolltest.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox Width="75" Height="25"/> 
    </Grid> 
</Window> 
5

我不認爲TextBlock s可以滾動。您可以將TextBlock放入ScrollViewer

XAML:

<ScrollViewer Name="MyScrollViewer"> 
    <TextBlock TextWrapping="Wrap"> 
     A bunch of text 
    </TextBlock> 
</ScrollViewer> 

代碼隱藏:

MyScrollViewer.ScrollToBottom(); 

看來,如果你在一個列表框有多個的TextBlocks,您將無法訪問很容易到它的ScrollViewer中完成同樣的事情。如果你這樣做,將你的列表框改爲一個ItemsControl並把它放到一個ScrollViewer中。我想你會失去選擇能力。

如果您確實需要使用ListBox,那麼您可以獲取屬於最後一項的視圖並調用ListBox的ScrollIntoView()方法。關於這一點,請參閱或this,但您可能需要做更多的研究。