0

введите сюда описание изображения

введите сюда описание изображения

Хотел сделать плавное отображение формы с помощью кода:

    public Shift()
    {
        InitializeComponent();
    Opacity = 0;
    System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
    timer.Tick += new EventHandler((sender, e) =>
    {
        if ((Opacity += 0.05d) == 1) timer.Stop();
    });
    timer.Interval = 100;
    timer.Start();

    Activate();
}

Но по итогу получается так. Использую MetroFramework.Forms

Dmitry
  • 7,859
Frehzy
  • 1,316
  • В Winforms не поддерживается полупрозрачность, совсем. Пора бы начать изучать WPF. – aepot Jun 29 '21 at 22:40
  • Хотя для самой формы вроде можно за счет поддержки операционной системой https://docs.microsoft.com/ru-ru/dotnet/api/system.windows.forms.form.opacity?view=netcore-3.1 – aepot Jun 29 '21 at 22:43
  • Спасибо. Уже нашёл, с чем это может быть связано. Так же, при запуске формы добавил небольшую "анимацию" увеличения формы из 0 в нужное значение. Выглядит красиво) – Frehzy Jun 29 '21 at 22:45
  • 1
    В любом случае в формах красиво - это через боль и страдания. Я в свое время плюнул и ушел в WPF, там оно из коробки всё есть без проблем. Сложнее всего освоить XAML, но если вы верстали на HTML, то процесс немного похож. В общем, оно того стоит. – aepot Jun 29 '21 at 22:49
  • 1
    И анимации там родные на любой вкус безо всяких самопальных таймеров. Вот такие мучения в WPF отсутствуют в принципе. – aepot Jun 29 '21 at 22:50

1 Answers1

0

введите сюда описание изображения

Итак, решение - изменить ShadowType на None (либо любой другой)

Frehzy
  • 1,316