自定義WPF窗體形狀的實(shí)戰(zhàn)記錄
介紹
你好WPF愛好者。 隨著WPF等統(tǒng)一API語言的發(fā)明,豐富用戶界面變得非常容易。 創(chuàng)建豐富的用戶界面只是一個(gè)想法。 您需要擁有的是創(chuàng)造性思維和最新技術(shù)融合。 WPF和Expression Blend在制作豐富的UI應(yīng)用程序,清晰的圖形和非常好的動(dòng)畫方面非常有用。
在創(chuàng)建WPF應(yīng)用的時(shí)候,你第一個(gè)看到的就是窗體類。它作為窗體的基礎(chǔ),提供標(biāo)準(zhǔn)的邊框、工具條、最大化、最小化和關(guān)閉按鈕。WPF窗體是XAML文件和后臺(tái)代碼文件的混合體。
背景
我將要發(fā)布的是將窗口矩形形狀塑造成圖像的形狀。 它可以是任何圖像,任何形狀,任何大小,它應(yīng)該是沒有背景的PNG(便攜式網(wǎng)絡(luò)圖形)圖像(白色背景被移除)。
代碼使用
嗯,實(shí)現(xiàn)這一點(diǎn)是小菜一碟,但我仍然會(huì)提供一個(gè)完整的演練過程。
先決條件
- .NET FrameWork 3.0或以上
- Visual Studio 2008或以上
- Adobe Photoshop或者一個(gè)圖片編輯工具
- 您要使用的圖像文件
- XAML相關(guān)知識(shí)
準(zhǔn)備圖片文件
- 選擇要用作窗體形狀的圖像文件。
- 在大多數(shù)圖像編輯工具中,使圖像背景自由是一個(gè)非常簡單的過程,但是,我將為Adobe Photoshop解釋它(因?yàn)槲蚁矚g該產(chǎn)品)。
- 在Adobe Photoshop中打開圖像文件。
- 選擇除背景之外的整個(gè)圖像。
- 復(fù)制選擇。
- 單擊菜單文件>>新建。 這將顯示一個(gè)對話框。 在對話框的“內(nèi)容”部分中,選擇“透明”,然后單擊“確定”。
- 將打開透明背景畫布,將圖像粘貼到那里并將其另存為PNG文件。
現(xiàn)在我們的圖像文件準(zhǔn)備就緒,讓我們現(xiàn)在塑造我們的WPF表格。
設(shè)置WPF應(yīng)用
打開Visual Studio 2008并創(chuàng)建新項(xiàng)目。
在Visual C#項(xiàng)目模板下,選擇Windows >> WPF應(yīng)用。
使用下面的XAML:
<window title="ShapedWindow" windowstartuplocation="CenterScreen" allowstransparency="True" opacitymask="White" windowstyle="None" background="Transparent" width="620" height="267" xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation x:class="ShapedWPFForm.ShapedWindow"> <grid> <img name="imgBackground" source="Shape.png" stretch="Fill" /> </grid> </window>
所有就完成了
XAML屬性解釋:
- allowstransparency="True" - 設(shè)置窗體透明度。
- background="Transparent" - 表明背景是透明的。
- windowstyle="None" - 此屬性刪除標(biāo)題欄并使窗體無邊框。 基本上從窗體中刪除所有系統(tǒng)控件。
- opacitymask="White" - 此屬性使指定的背景顏色不受窗體的影響。
完成,教程完成。 通過這樣做,您可以將圖像作為窗體形狀。 為您的窗體賦予創(chuàng)意。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
如何利用C#通過sql語句操作Sqlserver數(shù)據(jù)庫教程
ado.net提供了豐富的數(shù)據(jù)庫操作,下面這篇文章主要給大家介紹了關(guān)于如何利用C#通過sql語句操作Sqlserver數(shù)據(jù)庫教程的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10C#中使用HttpPost調(diào)用WebService的方法
這篇文章介紹了C#中使用HttpPost調(diào)用WebService的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03c# WPF中自定義加載時(shí)實(shí)現(xiàn)帶動(dòng)畫效果的Form和FormItem
這篇文章主要介紹了c# WPF中自定義加載時(shí)實(shí)現(xiàn)帶動(dòng)畫效果的Form和FormItem,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03C# 從Excel讀取數(shù)據(jù)向SQL server寫入
這篇文章主要介紹了C# 從Excel讀取數(shù)據(jù)向SQL server寫入的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Unity Undo實(shí)現(xiàn)原理和使用方法詳解
本文將詳細(xì)介紹Unity Undo實(shí)現(xiàn)原理和使用方法,并提供多個(gè)使用例子,幫助開發(fā)者更好地理解和應(yīng)用該功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Stream.Write 與 StreamWriter.Write 的不同
Stream.Write 與 StreamWriter.Write 是我們在向流中寫數(shù)據(jù)時(shí),最常用的方法。下面就詳細(xì)講解這兩個(gè)方法。2013-04-04