来自动作的文本框的活动ScrollToEnd功能

时间:2013-02-19 11:26:01

标签: wpf textbox action

我在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";
    }
}

为什么会这样?

1 个答案:

答案 0 :(得分:0)

最后,使用以下方法解决了问题:

TextBox _textBox = (parameter as TextChangedEventArgs).OriginalSource as TextBox;
_textBox.ScrollToLine(_textBox.LineCount - 1);

这有点奇怪,

但最重要的是可行