我有一个TextBlock内容是绑定到ViewModel的字符串属性的数据.这TextBlock有一个ScrollViewer缠绕它.
我想要做的是每次日志更改时,ScrollViewer将滚动到底部.理想情况下我想要这样的东西:
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollPosition="{Binding Path=ScrollPosition}">
<TextBlock Text="{Binding Path=Logs}"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
我不希望后面使用代码!我在寻找应该使用该解决方案唯一的结合和/或XAML中.
有没有办法ScrollViewer在Windows Phone 8.1 Runtime中平滑地设置垂直偏移量?
我尝试过使用该ScrollViewer.ChangeView()方法,无论是否将disableAnimation参数设置为true或false,都不会对垂直偏移的更改进行动画处理.
例如:myScrollViewer.ChangeView(null, myScrollViewer.VerticalOffset + p, null, false);
偏移在没有动画的情况下更改.
我也试过使用垂直偏移中介:
/// <summary>
/// Mediator that forwards Offset property changes on to a ScrollViewer
/// instance to enable the animation of Horizontal/VerticalOffset.
/// </summary>
public sealed class ScrollViewerOffsetMediator : FrameworkElement
{
/// <summary>
/// ScrollViewer instance to forward Offset changes on to.
/// </summary>
public ScrollViewer ScrollViewer
{
get { return (ScrollViewer)GetValue(ScrollViewerProperty); }
set { SetValue(ScrollViewerProperty, value); }
}
public static …Run Code Online (Sandbox Code Playgroud) 如何滚动到滚动查看器中的特定位置?
<ScrollViewer x:Name ="MyScrollView" HorizontalScrollBarVisibility="Hidden" Height="500">
<StackPanel x:Name="ContentsPanel">
<TextBlock x:Name="someTb" Height="50">
</TextBlock>
<TextBlock x:Name="otherTb" Height="100">
</TextBlock>
</StackPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
我正在尝试滚动到我的滚动查看器中的特定元素,但我是UWP的新手,我无法完全理解如何做到这一点.
我想在事件发生时在第二个文本块中设置MyScrollView的滚动位置.