2016-05-23 59 views
1

我的TextBlock中的文本被綁定到我的代碼中的元素。但是,當我第一次打開窗口時,文本塊完全是空的。當我添加文本時,我需要ScrollViewer允許我向下滾動文本,或者在添加更多文本時自動向下滾動。使用MVVM,所以沒有任何代碼會是理想的。帶有綁定文本的WPF文本塊不會滾動

<StackPanel Grid.Column="0" Grid.Row="1" Margin="0 10"> 
    <Label Style="{StaticResource LabelStyle}">Output</Label> 
    <ScrollViewer VerticalScrollBarVisibility="Visible" Height="100"> 
     <TextBlock ScrollViewer.CanContentScroll="True" Height="100" VerticalAlignment="Stretch" TextWrapping="Wrap" Text="{Binding Path=ProcessingOutput}"/> 
    </ScrollViewer> 
</StackPanel> 

我該如何做到這一點?有沒有辦法更新ScrollViewer,以便看到更多的文字超出了我在TextBlock中可以看到的範圍,並且允許用戶向下滾動,或者允許我設置自動滾動功能,以便在通過綁定添加文本時自動向下滾動?

提前致謝!如果從TextBlock

刪除Height="100"使其滾動時文本更改其他答案建議使用ScrollViwer.ScrollToBottom()方法,例如

回答

0

滾動條將工作像這樣:

<ScrollViewer Name="scroll" 
       VerticalScrollBarVisibility="Visible" 
       Height="100"> 
    <TextBlock ScrollViewer.CanContentScroll="True" 
       VerticalAlignment="Stretch" 
       TextWrapping="Wrap" 
       Text="{Binding Path=ProcessingOutput, NotifyOnTargetUpdated=True}" 
       TargetUpdated="Txt_OnTargetUpdated"> 
     </TextBlock> 
</ScrollViewer> 
private void Txt_OnTargetUpdated(object sender, DataTransferEventArgs e) 
{ 
    scroll.ScrollToBottom(); 
} 
+0

哇,我搜索了一整天了這一點,從工作的TextBlock中採取的高度!謝謝!! – HaydenThrash