Искаженные изображения при использовании ImageList на ToolStripButton

Я хочу поместить несколько изображений в ToolStripButtonи изображения меняются в зависимости от состояния кнопки.

Итак, я установил .ImageList из ToolStrip быть моим ImageList и просто изменить ToolStripButton.ImageIndex на соответствующее значение.

Однако значки выглядят искаженными по сравнению с предоставлением точно такого же изображения непосредственно ToolStripButton.Image имущество.

На картинке ниже изображение с левой стороны ImageListтот, что справа устанавливается ToolStripButton.Image, Как вы можете видеть, слева показано несколько маленьких нечетных пикселей, особенно видимых при нажатии кнопки.

Я пытался изменить TransparencyColor а также ColorDepth но это не имеет никакого значения. Какие-нибудь подсказки относительно того, что я пропускаю?

Нечетные значки

2 ответа

Попробуйте установить AutoSize в false а также ImageScaling в ToolStripItemImageScaling.None,

Вы можете выложить картинки в Ресурсы и заменить ImageListс Dictionary? В этом случае фотографии будут равны оригиналу.

      Dim dictPictures As New Dictionary(Of String, Bitmap)
Dim runTimeResourceSet As Object
Dim dictEntry As DictionaryEntry
runTimeResourceSet = My.Resources.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, True, True)
For Each dictEntry In runTimeResourceSet
    If (dictEntry.Value.GetType() Is GetType(Bitmap)) Then
        If Not dictPictures.ContainsKey(dictEntry.Key & ".png") Then dictPictures.Add(dictEntry.Key & ".png", dictEntry.Value)
    End If
Next

PS Код находится в VB.NETно вы поймете суть.

Другие вопросы по тегам