我在TextBox
中有一个ScrollViewer
,当文本更改我运行时应该滚动到结尾。
此处为xaml
:
<ScrollViewer>
<TextBox IsReadOnly="True" Text="{Binding SomeText}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<ac:ScrollToEndAction/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
</ScrollViewer>
这里的行动:
public class ScrollToEndAction : TargetedTriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.ScrollToEnd();
}
}
不起作用。
我尝试按以下方式更改操作中的文字(有效!):
public class ScrollToEndAction : TargetedTriggerAction<FrameworkElement>
{
protected override void Invoke(object parameter)
{
TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.Text="Test";
}
}
为什么会这样?
答案 0 :(得分:0)
最后,使用以下方法解决了问题:
TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.ScrollToLine(_textBox.LineCount - 1);
这有点奇怪,
但最重要的是可行。