1.窗体闪烁
/// <summary>
/// 窗体闪烁
/// </summary>
/// <param name="handle">将要闪烁的窗体</param>
/// <param name="blnvert">是否恢复状态</param>
/// <returns></returns>
[system.runtime.interopservices.dllimport("user32.dll")]
static extern bool flashwindow(intptr handle, bool blnvert);
2.透明非矩形的窗体
效果:

public partial class form1 : form
{
bitmap bit;
public form1()
{
initializecomponent();
}
protected override void onpaint(painteventargs e)
{
//e.graphics.drawellipse(new pen(color.red,2), new rectanglef(0, 0, this.width-2, this.height-2));
e.graphics.drawimage(bit, new point(0, 0));
e.graphics.drawstring("good", new font("华文行楷", 15), brushes.red, new pointf(10, 10));
}
private void form1_load(object sender, eventargs e)
{
bit = new bitmap("../../1.png");
bit.maketransparent(color.blue);
this.transparencykey = control.defaultbackcolor;//必须对该属性进行设置否则背景不透明
}
}3.窗口显示,退出呈现平滑效果
/// <summary>
/// 窗口显示关闭动画
/// </summary>
class popupwindowanimation
{
/// <summary>
/// 窗口打开关闭动画
/// </summary>
/// <param name="hander">窗口句柄</param>
/// <param name="duration">持续时间</param>
/// <param name="effert">效果</param>
/// <returns></returns>
public static bool popwindow(intptr handle,int duration, effect effert)
{
bool result = animatewindow(handle, duration, (int)effert);
return result;
}
/// <summary>
/// 实现窗口的动画效果
/// </summary>
/// <param name="hwnd">窗口句柄</param>
/// <param name="dwtime">动画持续的时间</param>
/// <param name="dwflags">动画类型选项</param>
/// <returns></returns>
[dllimport("user32.dll")]
static extern bool animatewindow(intptr hwnd, int dwtime, int dwflags);
}
/// <summary>
/// 动画效果
/// </summary>
[flags]
public enum effect
{
/// <summary>
/// 滑动效果。默认为滚动动画类型,当使用aw_center标志时,这个标志被忽略
/// </summary>
aw_slide = 0x40000,
/// <summary>
/// 激活窗口。在使用aw_hide标志后不要使用这个标志
/// </summary>
aw_activate = 0x20000,
/// <summary>
/// 使用淡入效果。只有当hwnd为顶层窗口时才可以使用此标志
/// </summary>
aw_blend = 0x80000,
/// <summary>
/// 隐藏窗口,默认则显示窗口
/// </summary>
aw_hide = 0x10000,
/// <summary>
///若使用aw_hide标志,则使窗口向内重叠;若使用aw_hide标志,则使窗口向外扩展。
/// </summary>
aw_center = 0x10,
/// <summary>
/// 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用aw_center标志时,该标志
/// 被忽略
/// </summary>
aw_hor_positive = 0x1,
/// <summary>
/// 自右向左显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用aw_center标志时,该标志
/// 被忽略
/// </summary>
aw_hor_negative = 0x2,
/// <summary>
/// 自上向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用aw_center标志时,该标志
/// 被忽略
/// </summary>
aw_ver_positive = 0x4,
/// <summary>
/// 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用aw_center标志时,该标志
/// 被忽略
/// </summary>
aw_ver_negative = 0x8
}4.窗体不在任务栏中显示
设置窗体属性:
| formborderstyle | showintaskbar | 效果 |
|---|---|---|
| sizabletoolwindow | true | 该窗体不出现在alt+tab快捷键的预览窗口中,但任务栏中依然有该窗体 |
| sizabletoolwindow | false | 该窗体不出现在alt+tab快捷键的预览窗口中,也不出现在任务栏中 |
到此这篇关于c#常见winform窗体效果详解的文章就介绍到这了,更多相关c# winform窗体效果内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论