/// <summary> /// Gives preference to top right corner if region is too large. /// </summary> private void Content_EnsureCursorVisible(object sender, CursorRegionEventArgs e) { if (e.Width > 1 && e.Height > 1) { ScrollToPoint(e.XStart + e.Width - 1, e.YStart + e.Height - 1); } ScrollToPoint(e.XStart, e.YStart); }
protected void OnEnsureCursorVisible() { if (SelectedIndex < 0 || SelectedIndex > Items.Count) { return; } (int x, int y, int width, int height) = GetSelectedRegion(); CursorRegionEventArgs e = new CursorRegionEventArgs(x, y, width, height); EventHandler <CursorRegionEventArgs> handler = EnsureCursorVisible; handler?.Invoke(this, e); }