diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml index 1fd9e2c9d3..2c4b5265e0 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml @@ -61,12 +61,12 @@ HorizontalAlignment="Stretch" Background="LightGray"> + Grid.Column="2" + Grid.Row="2" + CanContentScroll="True" + VerticalScrollBarVisibility="Visible" + HorizontalScrollBarVisibility="Visible" + ScrollChanged="ScrollViewer_ScrollChanged"> diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs index 9cd50c3ff9..a2eca0b984 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs @@ -65,29 +65,34 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls topScrollViewer = Helper.FindVisualChild(topTree); } + void OnHoverChanged (object sender ,HoveredCellEventArgs e) { - var leftNode = leftTree.Items[e.HoveredCell.RowIndex] as DependecyTreeNode; - leftTree.SelectedItem = leftNode; - leftTree.FocusNode(leftNode); - - var topNode = topTree.Items[e.HoveredCell.ColumnIndex] as DependecyTreeNode; - topTree.SelectedItem = topNode; - topTree.FocusNode(topNode); + if (e.HoveredCell.RowIndex < leftTree.Items.Count) { + var leftNode = leftTree.Items[e.HoveredCell.RowIndex] as DependecyTreeNode; + leftTree.SelectedItem = leftNode; + leftTree.FocusNode(leftNode); + } + if (e.HoveredCell.ColumnIndex < topTree.Items.Count ) + { + var topNode = topTree.Items[e.HoveredCell.ColumnIndex] as DependecyTreeNode; + topTree.SelectedItem = topNode; + topTree.FocusNode(topNode); + } } void LeftTree_ScrollChanged(object sender, ScrollChangedEventArgs e) { // Console.WriteLine("Left TreeScroll"); - scrollViewer.ScrollToVerticalOffset(e.VerticalOffset * matrixControl.CellHeight); +// scrollViewer.ScrollToVerticalOffset(e.VerticalOffset * matrixControl.CellHeight); Console.WriteLine("--"); } void TopTree_ScrollChanged(object sender, ScrollChangedEventArgs e) { // Console.WriteLine("Top TreeScroll "); - scrollViewer.ScrollToHorizontalOffset(e.VerticalChange * matrixControl.CellHeight); +// scrollViewer.ScrollToHorizontalOffset(e.VerticalChange * matrixControl.CellHeight); Console.WriteLine("--"); }