public void Dispose() { editor.Loaded -= editor_Loaded; if (trackAdorner != null) { trackAdorner.Remove(); trackAdorner = null; } }
void editor_Loaded(object sender, RoutedEventArgs e) { if (isUIInitialized) { return; } isUIInitialized = true; editor.ApplyTemplate(); var scrollViewer = (ScrollViewer)editor.Template.FindName("PART_ScrollViewer", editor); if (scrollViewer == null) { return; } scrollViewer.ApplyTemplate(); var vScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_VerticalScrollBar", scrollViewer); var hScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_HorizontalScrollBar", scrollViewer); // make both scrollbars transparent so that they look consistent MakeThumbTransparent(vScrollBar); MakeThumbTransparent(hScrollBar); if (vScrollBar == null) { return; } Track track = (Track)vScrollBar.Template.FindName("PART_Track", vScrollBar); if (track == null) { return; } Grid grid = VisualTreeHelper.GetParent(track) as Grid; if (grid != null) { trackBackground = new TrackBackground(this); trackAdorner = new TrackAdorner(this); Grid.SetColumn(trackBackground, Grid.GetColumn(track)); Grid.SetRow(trackBackground, Grid.GetRow(track)); Grid.SetColumnSpan(trackBackground, Grid.GetColumnSpan(track)); Grid.SetRowSpan(trackBackground, Grid.GetRowSpan(track)); Grid.SetColumn(trackAdorner, Grid.GetColumn(track)); Grid.SetRow(trackAdorner, Grid.GetRow(track)); Grid.SetColumnSpan(trackAdorner, Grid.GetColumnSpan(track)); Grid.SetRowSpan(trackAdorner, Grid.GetRowSpan(track)); Panel.SetZIndex(track, 1); Panel.SetZIndex(trackAdorner, 2); grid.Children.Add(trackBackground); grid.Children.Add(trackAdorner); } }
void editor_Loaded(object sender, RoutedEventArgs e) { if (isUIInitialized) { return; } isUIInitialized = true; editor.ApplyTemplate(); var scrollViewer = (ScrollViewer)editor.Template.FindName("PART_ScrollViewer", editor); if (scrollViewer == null) { return; } scrollViewer.ApplyTemplate(); var vScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_VerticalScrollBar", scrollViewer); if (vScrollBar == null) { return; } Track track = (Track)vScrollBar.Template.FindName("PART_Track", vScrollBar); if (track == null) { return; } Grid grid = VisualTreeHelper.GetParent(track) as Grid; if (grid == null) { return; } var layer = AdornerLayer.GetAdornerLayer(grid); if (layer == null) { return; } trackAdorner = new TrackAdorner(this, grid); layer.Add(trackAdorner); }
void editor_Loaded(object sender, RoutedEventArgs e) { if (isUIInitialized) return; isUIInitialized = true; editor.ApplyTemplate(); var scrollViewer = (ScrollViewer)editor.Template.FindName("PART_ScrollViewer", editor); if (scrollViewer == null) return; scrollViewer.ApplyTemplate(); var vScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_VerticalScrollBar", scrollViewer); var hScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_HorizontalScrollBar", scrollViewer); // make both scrollbars transparent so that they look consistent MakeThumbTransparent(vScrollBar); MakeThumbTransparent(hScrollBar); if (vScrollBar == null) return; Track track = (Track)vScrollBar.Template.FindName("PART_Track", vScrollBar); if (track == null) return; Grid grid = VisualTreeHelper.GetParent(track) as Grid; if (grid != null) { trackBackground = new TrackBackground(this); trackAdorner = new TrackAdorner(this); Grid.SetColumn(trackBackground, Grid.GetColumn(track)); Grid.SetRow(trackBackground, Grid.GetRow(track)); Grid.SetColumnSpan(trackBackground, Grid.GetColumnSpan(track)); Grid.SetRowSpan(trackBackground, Grid.GetRowSpan(track)); Grid.SetColumn(trackAdorner, Grid.GetColumn(track)); Grid.SetRow(trackAdorner, Grid.GetRow(track)); Grid.SetColumnSpan(trackAdorner, Grid.GetColumnSpan(track)); Grid.SetRowSpan(trackAdorner, Grid.GetRowSpan(track)); Panel.SetZIndex(track, 1); Panel.SetZIndex(trackAdorner, 2); grid.Children.Add(trackBackground); grid.Children.Add(trackAdorner); } }
void editor_Loaded(object sender, RoutedEventArgs e) { if (isUIInitialized) return; isUIInitialized = true; editor.ApplyTemplate(); var scrollViewer = (ScrollViewer)editor.Template.FindName("PART_ScrollViewer", editor); if (scrollViewer == null) return; scrollViewer.ApplyTemplate(); var vScrollBar = (ScrollBar)scrollViewer.Template.FindName("PART_VerticalScrollBar", scrollViewer); if (vScrollBar == null) return; Track track = (Track)vScrollBar.Template.FindName("PART_Track", vScrollBar); if (track == null) return; Grid grid = VisualTreeHelper.GetParent(track) as Grid; if (grid == null) return; var layer = AdornerLayer.GetAdornerLayer(grid); if (layer == null) return; trackAdorner = new TrackAdorner(this, grid); layer.Add(trackAdorner); }