protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
{
var canScrollHorizontally = this.GetObservable(AcceptsReturnProperty)
.Select(x => !x);
var horizontalScrollBarVisibility = this.GetObservable(AcceptsReturnProperty)
.Select(x => x ? ScrollBarVisibility.Auto : ScrollBarVisibility.Hidden);
disposables.Add(Bind(
ScrollViewer.HorizontalScrollBarVisibilityProperty,
horizontalScrollBarVisibility,
BindingPriority.Style));
disposables.Add(TextDocumentProperty.Changed.Subscribe(_ => { SelectionStart = SelectionEnd = CaretIndex = -1; }));
disposables.Add(this.GetObservable(OffsetProperty).Subscribe(_ =>
{
EditorScrolled?.Invoke(this, new EventArgs());
}));
disposables.Add(AddHandler(KeyDownEvent, OnKeyDown, RoutingStrategies.Bubble));
}