簡體   English   中英

自動滾動到WPF中文本塊的末尾

[英]Auto scroll to the end of a Textblock in WPF

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

在計算器中,當我輸入更多數字時,它僅顯示最后輸入的數字。 沒有足夠的空間時,先前輸入的數字將被隱藏。 我想做同樣的事情。

有人可以幫幫我嗎?

我認為TextBlock不能滾動。 您可以將TextBlock放在ScrollViewer

XAML:

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

后台代碼:

MyScrollViewer.ScrollToBottom();

看來,如果一個ListBox中有多個TextBlocks,則無法很輕松地訪問它的ScrollViewer來完成相同的操作。 如果這樣做,請將ListBox更改為ItemsControl,然后將其放入ScrollViewer。 我認為您會失去選擇能力。

如果確實需要使用ListBox,則可以獲取屬於最后一項的視圖,並調用ListBox的ScrollIntoView()方法。 請參見有關一點點,但你可能需要做更多一點的研究。

您是說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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM