Hi Ihr,
ich habe Probleme mit der Darstellung verschiedener Anwendungs-Symbole in meinem Programm.
Bei Dark-Theme werden einige Symbole nicht richtig angezeigt, da dann bestimmte Farben durchsichtig sind und an diesen Stellen der dunkle Hintergrund sichtbar ist.
Bei hellem Theme fällt das Problem nicht auf.
Davon betroffen sind alle möglichen Anwendungs-Symbolen von denen im Office-Paket über Notepad++ bis hin zu allen möglichen Anwendungssymbolen.
Diese Symbole lese ich mit solchem Code aus den Anwendungen ein:
Spoiler anzeigen
Ich habe schon die verschiedensten Einstellungen für die Symbol-Eigenschaft "ImageTransparentColor" getestet von dem Default-Wert "Magenta" über ""Schwarz" bis zu Web-Transparent.
Aber immer sehen die Symbole bei dunklem Hintergrund besch...eiden aus.
Kann ich hier was einstellen, um den dummen Effekt zu unterbinden?
Beste Grüsse
ich habe Probleme mit der Darstellung verschiedener Anwendungs-Symbole in meinem Programm.
Bei Dark-Theme werden einige Symbole nicht richtig angezeigt, da dann bestimmte Farben durchsichtig sind und an diesen Stellen der dunkle Hintergrund sichtbar ist.
Bei hellem Theme fällt das Problem nicht auf.
Davon betroffen sind alle möglichen Anwendungs-Symbolen von denen im Office-Paket über Notepad++ bis hin zu allen möglichen Anwendungssymbolen.
Diese Symbole lese ich mit solchem Code aus den Anwendungen ein:
VB.NET-Quellcode
- Private Sub LoadSnippingToolFromSettingsAndAssignToButtons(anwendung As String)
- If IO.File.Exists(anwendung) = True Then
- Dim base64Icon As String = My.Settings.SnippingTool_Image
- If Not String.IsNullOrEmpty(base64Icon) Then
- Dim iconBitmap As Bitmap = IconHelper.Base64StringToBitmap(base64Icon)
- mnu_MainForm_Extras_SnippingTool.Image = iconBitmap
- mnu_MainForm_Extras_SnippingTool.Text = CapitalizeFirstLetter(IO.Path.GetFileNameWithoutExtension(anwendung))
- sym_Mainform_SnippingTool.Image = iconBitmap
- sym_Mainform_SnippingTool.Text = CapitalizeFirstLetter(IO.Path.GetFileNameWithoutExtension(anwendung))
- mnu_MainForm_Extras_SnippingTool.Visible = True
- sym_Mainform_SnippingTool.Visible = True
- End If
- Else
- mnu_MainForm_Extras_SnippingTool.Visible = False
- sym_Mainform_SnippingTool.Visible = False
- End If
- End Sub
- Private Sub SaveSnippingToolImageToSettings(anwendung As String)
- Dim iconBitmap As Bitmap = IconHelper.ExtractIcon(anwendung)
- Dim base64Icon As String = IconHelper.BitmapToBase64String(iconBitmap)
- My.Settings.SnippingTool_Image = base64Icon
- End Sub
- Public Class IconHelper
- ' Methode zum Extrahieren des Symbols einer EXE-Datei
- Public Shared Function ExtractIcon(filePath As String) As Bitmap
- Dim icon As Icon = Icon.ExtractAssociatedIcon(filePath)
- Return icon.ToBitmap()
- End Function
- ' Methode zum Konvertieren eines Bitmaps in einen Base64-String
- Public Shared Function BitmapToBase64String(bitmap As Bitmap) As String
- Using ms As New MemoryStream()
- bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
- Return Convert.ToBase64String(ms.ToArray())
- End Using
- End Function
- ' Methode zum Konvertieren eines Base64-Strings in ein Bitmap
- Public Shared Function Base64StringToBitmap(base64String As String) As Bitmap
- Dim imageBytes As Byte() = Convert.FromBase64String(base64String)
- Using ms As New MemoryStream(imageBytes)
- Return New Bitmap(ms)
- End Using
- End Function
- End Class
Ich habe schon die verschiedensten Einstellungen für die Symbol-Eigenschaft "ImageTransparentColor" getestet von dem Default-Wert "Magenta" über ""Schwarz" bis zu Web-Transparent.
Aber immer sehen die Symbole bei dunklem Hintergrund besch...eiden aus.
Kann ich hier was einstellen, um den dummen Effekt zu unterbinden?
Beste Grüsse
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dideldum“ ()