Изображение PNG имеет прозрачные части, и я хочу, чтобы это изображение было фоном для моей формы.
Я установил ControlStyles.SupportsTransparentBackColor
в true
и использовал this.BackColor = Color.Transparent;
но это просто не работает вообще, задний цвет кажется сплошным серым, когда я запускаю приложение. Даже если я установил BackColor в Transparent в Properties-> Appearence. Я вижу это Прозрачно в предварительном просмотре формы, но он все еще кажется сплошным серым, когда я запускаю приложение.
Игра с TransparencyKey
также дает мне плохие результаты - полупрозрачные пиксели изображения PNG стали цветными с цветом TransparencyKey
и я не могу использовать прозрачный цвет для TransparencyKey
. Ищите какую-то помощь.
ПРИМЕР: http://i.stack.imgur.com/u9p6N.jpg
Вы можете использовать TransparencyKey
неправильно. Идея этого свойства заключается в том, что цвет, указанный как TransparencyKey
будет прозрачным. Например, если вы установите myForm.TransparencyKey = Color.Red
все, что красное, будет прозрачным. Однако, если красный оттенок отличается от цвета, указанного в Color.Red
он не будет прозрачным.
Или, иначе говоря, это приведет к прозрачному фону:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackColor = Color.FromArgb(100, 0, 0);
this.TransparencyKey = Color.FromArgb(100, 0, 0);
}
}
Но это не будет прозрачно:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackColor = Color.FromArgb(99, 0, 0);
this.TransparencyKey = Color.FromArgb(100, 0, 0);
}
}
Итак, теперь, если ваше изображение имеет белый фон, и вы устанавливаете this.TransparencyKey = Color.White
только белые части изображения будут прозрачными. Но если есть какие-то сероватые, белые области, вы увидите этот цвет вместо прозрачного фона.
В этом случае вам может потребоваться отредактировать изображение, чтобы убедиться, что фон имеет один и тот же цвет.