From d5d303cc48ec72ac66465947ad5b1f462142a340 Mon Sep 17 00:00:00 2001 From: Renzo Lanza Date: Mon, 25 Mar 2019 12:02:02 +0000 Subject: [PATCH] LicenceManager 2.1c6: - Aggiustato il taglio dell'ultima riga nel DataGrid anche per SearchProduct --- SearchProductPage/SearchProductPageV.xaml | 5 +- SearchProductPage/SearchProductPageV.xaml.vb | 58 ++++++++++---------- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/SearchProductPage/SearchProductPageV.xaml b/SearchProductPage/SearchProductPageV.xaml index 05bf5c9..e768a26 100644 --- a/SearchProductPage/SearchProductPageV.xaml +++ b/SearchProductPage/SearchProductPageV.xaml @@ -2,7 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5" - DataContext="{StaticResource SearchProductPageVM}"> + DataContext="{StaticResource SearchProductPageVM}" Loaded="Grid_Loaded"> @@ -77,7 +77,8 @@ Grid.Row="3" Style="{StaticResource ParametersComboBox}"/> - 0 Then - ' For Each DataGridItem In ProductDataGrid.ItemContainerGenerator.Items ' ContainerFromIndex(i) - ' If IsUserVisible(CType(ProductDataGrid.ItemContainerGenerator.ContainerFromIndex(i), FrameworkElement), ProductDataGrid) Then - ' visibleRows += 1 - ' Else - ' Exit For - ' End If - ' i = i + 1 - ' Next - ' 'If (ClientDataGrid.Height < ClientDataGrid.ColumnHeaderHeight + ClientDataGrid.RowHeight * (visibleRows - 1)) Then - ' ProductDataGrid.Height = ProductDataGrid.ColumnHeaderHeight + ProductDataGrid.RowHeight * (visibleRows - 1) - ' 'End If - ' End If - 'End Sub + Private Sub Grid_Loaded(sender As Object, e As RoutedEventArgs) + Dim visibleRows As Integer = 0 + Dim i As Integer = 0 + If (ProductDataGrid.Height - ProductDataGrid.ColumnHeaderHeight) Mod ProductDataGrid.RowHeight <> 0 Then + For Each DataGridItem In ProductDataGrid.ItemContainerGenerator.Items ' ContainerFromIndex(i) + If IsUserVisible(CType(ProductDataGrid.ItemContainerGenerator.ContainerFromIndex(i), FrameworkElement), ProductDataGrid) Then + visibleRows += 1 + Else + Exit For + End If + i = i + 1 + Next + 'If (ClientDataGrid.Height < ClientDataGrid.ColumnHeaderHeight + ClientDataGrid.RowHeight * (visibleRows - 1)) Then + ProductDataGrid.Height = ProductDataGrid.ColumnHeaderHeight + ProductDataGrid.RowHeight * (visibleRows - 1) + 'End If + End If + End Sub - 'Private Function IsUserVisible(element As FrameworkElement, container As FrameworkElement) As Boolean - ' If Not IsNothing(element) Then - ' If Not element.IsVisible Then - ' Return False - ' End If - ' Dim bounds As Rect = element.TransformToAncestor(container).TransformBounds(New Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight)) - ' Dim Rect = New Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight) - ' Return Rect.Contains(bounds.TopLeft) Or Rect.Contains(bounds.BottomRight) - ' End If - ' Return False - 'End Function + Private Function IsUserVisible(element As FrameworkElement, container As FrameworkElement) As Boolean + If Not IsNothing(element) Then + If Not element.IsVisible Then + Return False + End If + Dim bounds As Rect = element.TransformToAncestor(container).TransformBounds(New Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight)) + Dim Rect = New Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight) + Return Rect.Contains(bounds.TopLeft) Or Rect.Contains(bounds.BottomRight) + End If + Return False + End Function End Class