Hallo.
Ich hab ein Problem mit dem aktualisieren der Eigenschaften.
Wenn ich eine Farbe im Eigenschaften-Fenster von Visual Studio ändere und dann auf ein anderes Steuerelement klicke, wird diese Farbe dann übernommen.
Ich möchte aber, dass diese Farbe sofort aktualisiert wird.
Nur kann ich eben in dieser Structure, die die Farbeigenschaften enthalten, kein Invalidate() durchführen.
@Gather hat mir bereits etwas geholfen und mir empfohlen ein Event zu erstellen, jedoch hab ich davon keine Ahnung und weiß nicht wie ich diese dann in der Structure verwenden kann.
Verbesserungsvorschläge sind gerne gesehen.
Ich würde mich über Hilfe ebenfalls freuen.
Mit freundlichen Grüßen
ISD
Ich hab ein Problem mit dem aktualisieren der Eigenschaften.
Wenn ich eine Farbe im Eigenschaften-Fenster von Visual Studio ändere und dann auf ein anderes Steuerelement klicke, wird diese Farbe dann übernommen.
Ich möchte aber, dass diese Farbe sofort aktualisiert wird.
Nur kann ich eben in dieser Structure, die die Farbeigenschaften enthalten, kein Invalidate() durchführen.
@Gather hat mir bereits etwas geholfen und mir empfohlen ein Event zu erstellen, jedoch hab ich davon keine Ahnung und weiß nicht wie ich diese dann in der Structure verwenden kann.
VB.NET-Quellcode
- #Region "Color Properties"
- <TypeConverter(GetType(ExpandableObjectConverter))>
- Public Property Colors As New ColorProperties
- <TypeConverter(GetType(ColorProperties))>
- Public Structure ColorProperties
- Public Property HoverCloseBackgroundColor As Color
- Get
- Return _HoverCloseBackgroundColor
- End Get
- Set(value As Color)
- _HoverCloseBackgroundColor = value
- End Set
- End Property
- Public Property HoverMaximizeBackgroundColor As Color
- Get
- Return _HoverMaximizeBackgroundColor
- End Get
- Set(value As Color)
- _HoverMaximizeBackgroundColor = value
- End Set
- End Property
- Public Property HoverMinimizeBackgroundColor As Color
- Get
- Return _HoverMinimizeBackgroundColor
- End Get
- Set(value As Color)
- _HoverMinimizeBackgroundColor = value
- End Set
- End Property
- Public Property CloseColor As Color
- Get
- Return _CloseColor
- End Get
- Set(value As Color)
- _CloseColor = value
- End Set
- End Property
- Public Property MaximizeColor As Color
- Get
- Return _MaximizeColor
- End Get
- Set(value As Color)
- _MaximizeColor = value
- End Set
- End Property
- Public Property MinimizeColor As Color
- Get
- Return _MinimizeColor
- End Get
- Set(value As Color)
- _MinimizeColor = value
- End Set
- End Property
- Public Property HoverCloseColor As Color
- Get
- Return _HoverCloseColor
- End Get
- Set(value As Color)
- _HoverCloseColor = value
- End Set
- End Property
- Public Property HoverMaximizeColor As Color
- Get
- Return _HoverMaximizeColor
- End Get
- Set(value As Color)
- _HoverMaximizeColor = value
- End Set
- End Property
- Public Property HoverMinimizeColor As Color
- Get
- Return _HoverMinimizeColor
- End Get
- Set(value As Color)
- _HoverMinimizeColor = value
- End Set
- End Property
- Public Property BackgroundColor1 As Color
- Get
- Return _BackgroundColor1
- End Get
- Set(value As Color)
- _BackgroundColor1 = value
- End Set
- End Property
- Public Property BackgroundColor2 As Color
- Get
- Return _BackgroundColor2
- End Get
- Set(value As Color)
- _BackgroundColor2 = value
- End Set
- End Property
- Public Property HeaderColor As Color
- Get
- Return _HeaderColor
- End Get
- Set(value As Color)
- _HeaderColor = value
- End Set
- End Property
- Public Property BottomBarColor As Color
- Get
- Return _BottomBarColor
- End Get
- Set(value As Color)
- _BottomBarColor = value
- End Set
- End Property
- Public Property BorderColor As Color
- Get
- Return _BorderColor
- End Get
- Set(value As Color)
- _BorderColor = value
- End Set
- End Property
- Public Property ShinyColor As Color
- Get
- Return _ShinyColor
- End Get
- Set(value As Color)
- _ShinyColor = value
- End Set
- End Property
- Public Property TextColor As Color
- Get
- Return _TextColor
- End Get
- Set(value As Color)
- _TextColor = value
- End Set
- End Property
- End Structure
- Public Class ColorsConverter : Inherits TypeConverter
- Public Overrides Function GetProperties(ByVal Context As ITypeDescriptorContext, ByVal Value As Object, ByVal Attributes() As Attribute) As PropertyDescriptorCollection
- Return Context.PropertyDescriptor.GetChildProperties(Value, Attributes)
- End Function
- Public Overrides Function GetPropertiesSupported(ByVal Context As ITypeDescriptorContext) As Boolean
- Return True
- End Function
- Public Overrides Function CanConvertTo(ByVal Context As ITypeDescriptorContext, ByVal DestinationType As Type) As Boolean
- Return GetType(Color).IsAssignableFrom(DestinationType)
- End Function
- Public Overrides Function IsValid(ByVal Context As ITypeDescriptorContext, ByVal Value As Object) As Boolean
- Return Value IsNot Nothing AndAlso CanConvertTo(Value.GetType())
- End Function
- Public Overrides Function ConvertTo(ByVal Context As ITypeDescriptorContext, ByVal Culture As Globalization.CultureInfo, ByVal Value As Object, ByVal DestinationType As Type) As Object
- If GetType(Color).IsAssignableFrom(DestinationType) Then
- Dim Colors As ColorProperties = Value
- Return String.Format("CloseColor = {0}, HoverCloseColor = {1}, HoverCloseBackgroundColor = {2}, " +
- "MaximizeColor = {3}, HoverMaximizeColor = {4}, HoverMaximizeBackgroundColor = {5}, " +
- "MinimizeColor = {6}, HoverMinimizeColor = {7}, HoverMinimizeBackgroundColor = {8}, " +
- "BackgroundColor1 = {9}, BackgroundColor2 = {10}, HeaderColor = {11}, BottomBarColor = {12}, " +
- "ShinyColor = {13}, BorderColor = {14}, TextColor = {15}",
- Colors.CloseColor, Colors.HoverCloseColor, Colors.HoverCloseBackgroundColor,
- Colors.MaximizeColor, Colors.HoverMaximizeColor, Colors.HoverMaximizeBackgroundColor,
- Colors.MinimizeColor, Colors.HoverMinimizeColor, Colors.HoverMinimizeBackgroundColor,
- Colors.BackgroundColor1, Colors.BackgroundColor2,
- Colors.HeaderColor, Colors.BottomBarColor, Colors.ShinyColor, Colors.BorderColor, Colors.TextColor)
- Else
- Throw New ArgumentException("Can't convert to the specified type.")
- End If
- End Function
- End Class
- #End Region
- #Region "Colors"
- Private Shared _CloseColor As Color = Color.FromArgb(75, 75, 75)
- Private Shared _MaximizeColor As Color = Color.FromArgb(75, 75, 75)
- Private Shared _MinimizeColor As Color = Color.FromArgb(75, 75, 75)
- Private Shared _HoverCloseColor As Color = White
- Private Shared _HoverMaximizeColor As Color = White
- Private Shared _HoverMinimizeColor As Color = White
- Private Shared _HoverCloseBackgroundColor As Color = Color.FromArgb(210, 75, 75)
- Private Shared _HoverMaximizeBackgroundColor As Color = Gray
- Private Shared _HoverMinimizeBackgroundColor As Color = Gray
- Private Shared _BackgroundColor1 As Color = Color.FromArgb(41, 41, 41)
- Private Shared _BackgroundColor2 As Color = Color.FromArgb(255, 0, 0, 0)
- Private Shared _HeaderColor As Color = Dark
- Private Shared _BottomBarColor As Color = Dark
- Private Shared _ShinyColor As Color = White
- Private Shared _BorderColor As Color = White
- Private Shared _TextColor As Color = White
- #End Region
Verbesserungsvorschläge sind gerne gesehen.
Ich würde mich über Hilfe ebenfalls freuen.
Mit freundlichen Grüßen
ISD