diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs index a6d03ca0e..29da7b293 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ProcessParametersView.xaml.cs @@ -23,6 +23,8 @@ namespace Tango.MachineStudio.RML.Views /// </summary> public partial class ProcessParametersView : UserControl { + private HashSet<ScrollViewer> _processTablesViewers; + private MainViewVM _vm; public DraggingSurface DraggingSurface { @@ -46,6 +48,7 @@ namespace Tango.MachineStudio.RML.Views public ProcessParametersView() { InitializeComponent(); + _processTablesViewers = new HashSet<ScrollViewer>(); DraggingSurface = draggingSurface; Loaded += (_, __) => { _vm = DataContext as MainViewVM; }; } @@ -55,5 +58,23 @@ namespace Tango.MachineStudio.RML.Views ProcessParametersTable dropped = e.Droppable.DataContext as ProcessParametersTable; _vm.OnProcessParametersTableDropped(dragged, dropped); } + + private void ScrollViewer_Loaded(object sender, RoutedEventArgs e) + { + var viewer = sender as ScrollViewer; + if (!_processTablesViewers.Contains(viewer)) + { + viewer.ScrollChanged += Viewer_ScrollChanged; + _processTablesViewers.Add(viewer); + } + } + + private void Viewer_ScrollChanged(object sender, ScrollChangedEventArgs e) + { + foreach (var viewer in _processTablesViewers.Where(x => x.IsLoaded && x.IsVisible && x != sender).ToList()) + { + viewer.ScrollToVerticalOffset(e.VerticalOffset); + } + } } } |
