C#常見Winform窗體效果詳解
更新時間:2024年04月03日 09:23:08 作者:lingxiao16888
這篇文章主要為大家詳細介紹了C#中常見Winform窗體效果實現(xiàn),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
1.窗體閃爍
/// <summary>
/// 窗體閃爍
/// </summary>
/// <param name="handle">將要閃爍的窗體</param>
/// <param name="blnvert">是否恢復狀態(tài)</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.窗口顯示,退出呈現(xiàn)平滑效果
/// <summary>
/// 窗口顯示關閉動畫
/// </summary>
class PopUpWindowAnimation
{
/// <summary>
/// 窗口打開關閉動畫
/// </summary>
/// <param name="hander">窗口句柄</param>
/// <param name="duration">持續(xù)時間</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>
/// 實現(xiàn)窗口的動畫效果
/// </summary>
/// <param name="hwnd">窗口句柄</param>
/// <param name="dwTime">動畫持續(xù)的時間</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 | 該窗體不出現(xiàn)在Alt+Tab快捷鍵的預覽窗口中,但任務欄中依然有該窗體 |
| SizableToolWindow | False | 該窗體不出現(xiàn)在Alt+Tab快捷鍵的預覽窗口中,也不出現(xiàn)在任務欄中 |
到此這篇關于C#常見Winform窗體效果詳解的文章就介紹到這了,更多相關C# Winform窗體效果內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

