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

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

Поэтому я установил .ImageList из ToolStrip в качестве своего ImageList и просто изменил ToolStripButton.ImageIndex на соответствующее значение.

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

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

Я пытался изменить TransparencyColor и ColorDepth, но это не имело никакого значения. Любые подсказки относительно того, что мне не хватает?

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


person JohnUbuntu    schedule 29.02.2016    source источник


Ответы (2)


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

person Steve Wellens    schedule 29.02.2016
comment
Спасибо за предложения, ни то, ни другое не сработало. - person JohnUbuntu; 01.03.2016

Вы можете закинуть картинки в Ресурсы и заменить 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

P.S. Код находится в VB.NET, но вы поняли.

person CodeCatia    schedule 26.01.2021