FormBorderStyle=none の場合ウィンドウの外側にウィンドウの影が表示されません。しかし、時と場合によってはウィンドウの影を表示させたい場合もあります。
ウィンドウの影を表示させるには、ウィンドウ作成時のCreateParamsのスタイルに CS_DROPSHADOW を含めることで対応できます。
C#ではCreateParamsプロパティをオーバーライドすることでウィンドウ作成時のCreateParamsのパラメータを変更できます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace App
{
public partial class FormMain : Form
{
const int CS_DROPSHADOW = 0x00020000;
public FormMain()
{
InitializeComponent();
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ClassStyle |= CS_DROPSHADOW;
return cp;
}
}
}
}
フォームに影がついていることが確認できます。