你可以嘗試定製贏形式的陰影像這樣:
/// <summary>
/// Base class for drop shadows forms.
/// </summary>
public partial class DropShadowForm : Form
{
private const int CS_DROPSHADOW = 0x00020000;
/// <summary>
/// Creates new instance of DropShadowForm.
/// </summary>
public DropShadowForm()
{
InitializeComponent();
}
/// <summary>
/// Overrides from base class.
/// </summary>
protected override CreateParams CreateParams
{
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
get
{
CreateParams parameters = base.CreateParams;
if (DropShadowSupported)
{
parameters.ClassStyle = (parameters.ClassStyle | CS_DROPSHADOW);
}
return parameters;
}
}
/// <summary>
/// Gets indicator if drop shadow is supported
/// </summary>
public static bool DropShadowSupported
{
get
{
OperatingSystem system = Environment.OSVersion;
bool runningNT = system.Platform == PlatformID.Win32NT;
return runningNT && system.Version.CompareTo(new Version(5, 1, 0, 0)) >= 0;
}
}
}
我認爲這是可能的,覆蓋wndproc並放入'if(m.Msg == WM_ACTIVATE)DwmExtendFrameIntoClientArea(this.Handle,ref MARGIN);'MARGIN應該填入1(0不起作用)例如'MARGIN = {1,1,1,1};'FrameBorderStyle也必須是FrameBorderStyle.Sizeable才能工作。所以你必須這樣做:'if(m.Msg == WM_NCCALCSIZE && m.WParam!= IntPtr.Zero){m.Result = IntPtr.Zero;返回; }'去除框架邊框。 – 2014-12-12 14:53:17