Это событие LocationChanged
, которое вы хотите:
private void YourApp_LocationChanged(object sender, EventArgs e)
{
this.Opacity = 0.8;
}
Вам придется переопределить WndProc
и обработать событие exit move, чтобы сбросить непрозрачность до 1:
protected override void WndProc(ref Message m)
{
Trace.WriteLine(m.ToString());
switch (m.Msg)
{
case WMEXITSIZEMOVE:
this.Opacity = 1.0;
break;
}
base.WndProc(ref m);
}
Не забудьте указать код сообщения:
private const int WMEXITSIZEMOVE = 0x0232;
Может быть более эффективно обрабатывать сообщение WM_ENTERSIZEMOVE
(код 0x0231
) вместо LocationChanged
, поскольку это приведет к установке непрозрачности только один раз (в начале перемещения) а не постоянно на протяжении всего сопротивления.