61 lines
2.7 KiB
VB.net
61 lines
2.7 KiB
VB.net
Imports DevExpress.Xpf.Grid
|
|
|
|
Public Class tsTableView
|
|
Inherits DevExpress.Xpf.Grid.TableView
|
|
Public Property ColorFuentePersonalizado As Boolean
|
|
Public Sub New()
|
|
|
|
' Esta llamada es exigida por el diseñador.
|
|
MyBase.New
|
|
InitializeComponent()
|
|
AllowFixedColumnMenu = True
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
Public Sub New(masterRootNode As MasterNodeContainer, masterRootDataItem As MasterRowsContainer, detailDescriptor As DataControlDetailDescriptor)
|
|
|
|
' Esta llamada es exigida por el diseñador.
|
|
MyBase.New(masterRootNode, masterRootDataItem, detailDescriptor)
|
|
InitializeComponent()
|
|
AllowFixedColumnMenu = True
|
|
|
|
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
|
|
|
|
End Sub
|
|
|
|
Private Function ShadeBrush(ByVal brush As SolidColorBrush) As SolidColorBrush
|
|
Dim originalColor As Color = brush.Color
|
|
Dim coefficient As Single = 0.9F
|
|
Dim a As Byte = originalColor.A
|
|
If Not Grid.IsKeyboardFocusWithin Then a = CByte((originalColor.A / 2))
|
|
Dim r As Byte = CByte((originalColor.R * coefficient))
|
|
Dim g As Byte = CByte((originalColor.G * coefficient))
|
|
Dim b As Byte = CByte((originalColor.B * coefficient))
|
|
Return New SolidColorBrush(Color.FromArgb(a, r, g, b))
|
|
End Function
|
|
|
|
Private Sub TableView_CustomRowAppearance(sender As Object, e As CustomRowAppearanceEventArgs)
|
|
If e.RowSelectionState <> SelectionState.None Then
|
|
Dim result As Object = e.ConditionalValue
|
|
|
|
If e.Property Is TextBlock.ForegroundProperty OrElse e.Property Is TextBlock.BackgroundProperty Then
|
|
Dim original As SolidColorBrush = TryCast(e.OriginalValue, SolidColorBrush)
|
|
Dim conditional As SolidColorBrush = TryCast(e.ConditionalValue, SolidColorBrush)
|
|
If Me.ColorFuentePersonalizado AndAlso e.Property Is TextBlock.ForegroundProperty Then
|
|
Dim row = Me.Grid.GetRow(e.RowHandle)
|
|
conditional = TryCast(row.GetType.GetProperty("ColorFuenteFila").GetValue(row), SolidColorBrush)
|
|
End If
|
|
If conditional IsNot Nothing AndAlso (original Is Nothing OrElse original.Color <> conditional.Color) Then result = ShadeBrush(conditional)
|
|
End If
|
|
e.Result = result
|
|
e.Handled = True
|
|
End If
|
|
End Sub
|
|
Private Sub tsTableView_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
|
If ColorFuentePersonalizado Then
|
|
Me.RowStyle = Me.FindResource("tsRowStyle")
|
|
Me.CellStyle = Me.FindResource("tsCellStyle")
|
|
End If
|
|
End Sub
|
|
|
|
End Class |