Затемнение фона в WM приложении
Оригинал: https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx
На днях мой заказчик спросил меня, как можно сделать в его Windows Mobile приложении эффект затемняющегося фона при показе окна сообщения (MessageBox). В принципе, это достаточно несложно сделать, используя метод DrawAlpha класса GraphicsExtender, как я рассказывал об это в этом вебкасте. Взгляните на этот отрывок кода:
protected override void OnPaint(PaintEventArgs e)
{
// Create a temp bitmap
Bitmap dimBackGround = new Bitmap(this.Width, this.Height);
Graphics gxTemp = Graphics.FromImage(dimBackGround);
// Color it black
gxTemp.Clear(Color.Black);
// Draw it with alpha transparency
e.Graphics.DrawAlpha(dimBackGround, 100, 0, 0);
// Clean up
gxTemp.Dispose();
dimBackGround.Dispose();
}
Написанный выше код является перегруженным методом OnPaint класса BackgroundForm, который я добавил в свой демонстрационный проект. Я установил свойство этой формы FormBorderStyle в None, а WindowState в Maximized, чтобы она отображалась на полный экран.
И теперь, перед отображением окна сообщения (MessageBox) нужно показать форму BackroundForm:
BackgroundForm form = new BackgroundForm();
form.Show();
MessageBox.Show(txtMessage.Text);
form.Close();
И вот результат:
Перевел: Антонов Алексей.
Comments
- Anonymous
July 12, 2010
у кого-нибудь работает этот пример?