C#常見(jiàn)Winform窗體效果詳解
更新時(shí)間:2024年04月03日 09:23:08 作者:lingxiao16888
這篇文章主要為大家詳細(xì)介紹了C#中常見(jiàn)Winform窗體效果實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
1.窗體閃爍
/// <summary>
/// 窗體閃爍
/// </summary>
/// <param name="handle">將要閃爍的窗體</param>
/// <param name="blnvert">是否恢復(fù)狀態(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;//必須對(duì)該屬性進(jìn)行設(shè)置否則背景不透明
}
}3.窗口顯示,退出呈現(xiàn)平滑效果
/// <summary>
/// 窗口顯示關(guān)閉動(dòng)畫(huà)
/// </summary>
class PopUpWindowAnimation
{
/// <summary>
/// 窗口打開(kāi)關(guān)閉動(dòng)畫(huà)
/// </summary>
/// <param name="hander">窗口句柄</param>
/// <param name="duration">持續(xù)時(shí)間</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>
/// 實(shí)現(xiàn)窗口的動(dòng)畫(huà)效果
/// </summary>
/// <param name="hwnd">窗口句柄</param>
/// <param name="dwTime">動(dòng)畫(huà)持續(xù)的時(shí)間</param>
/// <param name="dwFlags">動(dòng)畫(huà)類型選項(xiàng)</param>
/// <returns></returns>
[DllImport("user32.dll")]
static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
}
/// <summary>
/// 動(dòng)畫(huà)效果
/// </summary>
[Flags]
public enum Effect
{
/// <summary>
/// 滑動(dòng)效果。默認(rèn)為滾動(dòng)動(dòng)畫(huà)類型,當(dāng)使用AW_CENTER標(biāo)志時(shí),這個(gè)標(biāo)志被忽略
/// </summary>
AW_SLIDE = 0X40000,
/// <summary>
/// 激活窗口。在使用AW_HIDE標(biāo)志后不要使用這個(gè)標(biāo)志
/// </summary>
AW_ACTIVATE = 0X20000,
/// <summary>
/// 使用淡入效果。只有當(dāng)hWnd為頂層窗口時(shí)才可以使用此標(biāo)志
/// </summary>
AW_BLEND = 0X80000,
/// <summary>
/// 隱藏窗口,默認(rèn)則顯示窗口
/// </summary>
AW_HIDE = 0X10000,
/// <summary>
///若使用AW_HIDE標(biāo)志,則使窗口向內(nèi)重疊;若使用AW_HIDE標(biāo)志,則使窗口向外擴(kuò)展。
/// </summary>
AW_CENTER = 0X10,
/// <summary>
/// 自左向右顯示窗口。該標(biāo)志可以在滾動(dòng)動(dòng)畫(huà)和滑動(dòng)動(dòng)畫(huà)中使用。當(dāng)使用AW_CENTER標(biāo)志時(shí),該標(biāo)志
/// 被忽略
/// </summary>
AW_HOR_POSITIVE = 0X1,
/// <summary>
/// 自右向左顯示窗口。該標(biāo)志可以在滾動(dòng)動(dòng)畫(huà)和滑動(dòng)動(dòng)畫(huà)中使用。當(dāng)使用AW_CENTER標(biāo)志時(shí),該標(biāo)志
/// 被忽略
/// </summary>
AW_HOR_NEGATIVE = 0X2,
/// <summary>
/// 自上向下顯示窗口。該標(biāo)志可以在滾動(dòng)動(dòng)畫(huà)和滑動(dòng)動(dòng)畫(huà)中使用。當(dāng)使用AW_CENTER標(biāo)志時(shí),該標(biāo)志
/// 被忽略
/// </summary>
AW_VER_POSITIVE = 0X4,
/// <summary>
/// 自下向上顯示窗口。該標(biāo)志可以在滾動(dòng)動(dòng)畫(huà)和滑動(dòng)動(dòng)畫(huà)中使用。當(dāng)使用AW_CENTER標(biāo)志時(shí),該標(biāo)志
/// 被忽略
/// </summary>
AW_VER_NEGATIVE = 0X8
}4.窗體不在任務(wù)欄中顯示
設(shè)置窗體屬性:
| FormBorderStyle | ShowInTaskBar | 效果 |
|---|---|---|
| SizableToolWindow | True | 該窗體不出現(xiàn)在Alt+Tab快捷鍵的預(yù)覽窗口中,但任務(wù)欄中依然有該窗體 |
| SizableToolWindow | False | 該窗體不出現(xiàn)在Alt+Tab快捷鍵的預(yù)覽窗口中,也不出現(xiàn)在任務(wù)欄中 |
到此這篇關(guān)于C#常見(jiàn)Winform窗體效果詳解的文章就介紹到這了,更多相關(guān)C# Winform窗體效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中三種Timer計(jì)時(shí)器的詳細(xì)用法
這篇文章介紹了C#中三種Timer計(jì)時(shí)器的詳細(xì)用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
C#基礎(chǔ)學(xué)習(xí)系列之Attribute和反射詳解
大家在使用Attribute的時(shí)候大多需要用到反射,所以放在一起。下面這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)學(xué)習(xí)系列之Attribute和反射的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
C#通過(guò)NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL
這篇文章主要為大家詳細(xì)介紹了C#通過(guò)NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
c#判斷數(shù)據(jù)庫(kù)服務(wù)器是否已經(jīng)啟動(dòng)的方法
這篇文章主要介紹了使用c#判斷數(shù)據(jù)庫(kù)服務(wù)器是否已經(jīng)啟動(dòng)的方法,大家參考使用吧2014-01-01

