自定義WPF窗體形狀的實(shí)戰(zhàn)記錄
介紹
你好WPF愛(ài)好者。 隨著WPF等統(tǒng)一API語(yǔ)言的發(fā)明,豐富用戶(hù)界面變得非常容易。 創(chuàng)建豐富的用戶(hù)界面只是一個(gè)想法。 您需要擁有的是創(chuàng)造性思維和最新技術(shù)融合。 WPF和Expression Blend在制作豐富的UI應(yīng)用程序,清晰的圖形和非常好的動(dòng)畫(huà)方面非常有用。
在創(chuàng)建WPF應(yīng)用的時(shí)候,你第一個(gè)看到的就是窗體類(lèi)。它作為窗體的基礎(chǔ),提供標(biāo)準(zhǔn)的邊框、工具條、最大化、最小化和關(guān)閉按鈕。WPF窗體是XAML文件和后臺(tái)代碼文件的混合體。
背景
我將要發(fā)布的是將窗口矩形形狀塑造成圖像的形狀。 它可以是任何圖像,任何形狀,任何大小,它應(yīng)該是沒(méi)有背景的PNG(便攜式網(wǎng)絡(luò)圖形)圖像(白色背景被移除)。
代碼使用
嗯,實(shí)現(xiàn)這一點(diǎn)是小菜一碟,但我仍然會(huì)提供一個(gè)完整的演練過(guò)程。
先決條件
- .NET FrameWork 3.0或以上
- Visual Studio 2008或以上
- Adobe Photoshop或者一個(gè)圖片編輯工具
- 您要使用的圖像文件
- XAML相關(guān)知識(shí)
準(zhǔn)備圖片文件
- 選擇要用作窗體形狀的圖像文件。
- 在大多數(shù)圖像編輯工具中,使圖像背景自由是一個(gè)非常簡(jiǎn)單的過(guò)程,但是,我將為Adobe Photoshop解釋它(因?yàn)槲蚁矚g該產(chǎn)品)。
- 在Adobe Photoshop中打開(kāi)圖像文件。
- 選擇除背景之外的整個(gè)圖像。
- 復(fù)制選擇。
- 單擊菜單文件>>新建。 這將顯示一個(gè)對(duì)話框。 在對(duì)話框的“內(nèi)容”部分中,選擇“透明”,然后單擊“確定”。
- 將打開(kāi)透明背景畫(huà)布,將圖像粘貼到那里并將其另存為PNG文件。

現(xiàn)在我們的圖像文件準(zhǔn)備就緒,讓我們現(xiàn)在塑造我們的WPF表格。
設(shè)置WPF應(yīng)用
打開(kāi)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)題欄并使窗體無(wú)邊框。 基本上從窗體中刪除所有系統(tǒng)控件。
- opacitymask="White" - 此屬性使指定的背景顏色不受窗體的影響。
完成,教程完成。 通過(guò)這樣做,您可以將圖像作為窗體形狀。 為您的窗體賦予創(chuàng)意。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Unity Shader實(shí)現(xiàn)素描風(fēng)格的渲染
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)素描風(fēng)格的渲染,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
這篇文章主要介紹了rsa加密算法使用示例,代碼中有注釋?zhuān)蠹覅⒖际褂冒?/div> 2014-01-01
c# 實(shí)現(xiàn)窗體拖到屏幕邊緣自動(dòng)隱藏
讓窗體拖到屏幕邊緣自動(dòng)隱藏的原理,通過(guò)Form1_LocationChanged的方法,當(dāng)窗體位置發(fā)生改變時(shí),判斷其是否在屏幕邊緣,在則隱藏。再通過(guò)Timer控件經(jīng)過(guò)指定時(shí)間判斷出鼠標(biāo)的位置,若鼠標(biāo)在屏幕左邊、上邊或右邊,這根據(jù)窗體的位置,調(diào)出窗體。2009-02-02
C#實(shí)現(xiàn)頁(yè)面GZip或Deflate壓縮的方法
這篇文章主要介紹了C#實(shí)現(xiàn)頁(yè)面GZip或Deflate壓縮的方法,涉及C#通過(guò)GZipStream與DeflateStream實(shí)現(xiàn)頁(yè)面壓縮的相關(guān)技巧,需要的朋友可以參考下2015-06-06
C#中Predicate<T>與Func<T, bool>泛型委托的用法實(shí)例
這篇文章主要介紹了C#中Predicate<T>與Func<T, bool>泛型委托的用法,指出了其用法中的誤區(qū)及易錯(cuò)點(diǎn),有助于更好的理解泛型委托的用法,需要的朋友可以參考下2014-09-09
Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作
這篇文章主要介紹了Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
C#獲取ListView鼠標(biāo)下的Item實(shí)例
下面小編就為大家?guī)?lái)一篇C#獲取ListView鼠標(biāo)下的Item實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01最新評(píng)論

