Перейти к содержанию

Делаем визуальные эффекты форме C# ♥


Рекомендуемые сообщения

Всем привет сегодня я расскажу как сделать форму прозрачной когда вы её перемещаете, так же как сделать что бы форму можно было перетаскивать за любой её участок.
1== чтобы сделать форму прозрачной при перемешение надо вставить следующей код  где хотите.

protected override void WndProc(ref Message m)
        {
            const int WM_NCLBUTTONDOWN = 0x00A1;
            const int WM_MOUSEMOW = 0x00A0;
            if (m.Msg == WM_NCLBUTTONDOWN)
            {
                this.Opacity = 0.5;
            }
            if(m.Msg == WM_MOUSEMOW)
            {
                this.Opacity = 1.0;
            }
            base.WndProc(ref m);
        }

 

2== Для того чтобы перетаскивать форму, за любой её участок кроме компонентов формы надо использовать WinAPI, но не пугайтесь ничего сложного нету ^_^ 

Вставляем после 

public partial class Form1 : Form

    {
следующий код
[DllImport("user32.dll", CharSet = CharSet.Auto)]
        static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
 
        [DllImportAttribute("user32.dll")]
        public static extern bool ReleaseCapture();

 

Ну и в событие Form1_MouseDown пишем

private void Form1_MouseDown(object sender, MouseEventArgs e)

        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(this.Handle, 0xA1, 0x2, 0);
                
            }  

 

       3== Теперь делаем картинку на плавный запуск запуск :rolleyes: 
Вы не поверите, но в Form1 мы ничего даже писать не будем для этого ^_^ 
Создаём Form2, это будет наша картинка. В FormBolderStyle - Ставим None. Далее заходим в Program.cs и убираем это: 
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1());
и вставляем это:
 
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form2 first = new Form2();
DateTime end = DateTime.Now + TimeSpan.FromSeconds(5);
first.Show();
while (end > DateTime.Now)
{
Application.DoEvents();
}
first.Close();
first.Dispose();
Application.Run(new Form1());

 

 

Теперь наступило время сделать нашу картинку, сделали? Теперь загружаем её на форму: BackGroundImage, затем на импорт и окей и

BackGroundImageLayot ставим Stretch это что бы картинка автоматически применяла размер формы так сказать без возни ^_^ . Выставляем Прозрачность Form2 на 0: Opacity - 0. Теперь добавляем на форму Form2 Таймер, ставим интервал 10. Теперь в событии таймера пишем:

 

this.Opacity += .03;
 
if (this.Opacity == 1)
{
timer1.Stop();
}
и после
InitializeComponent();
Пишем 
timer1.Start();
//Вот и всё ^_^ 

 

 
Спасибо за прочтение 8-) 
Изменено пользователем ivan96222
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.