這篇文章給大家分享的是有關(guān)WPF如何制作TextBox水印效果的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有光澤免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。一種自以為是的方式:
本來只是想簡單的做個水印效果,在文本框內(nèi)容為空的時候提示用戶輸入,這種需求挺常見。網(wǎng)上一搜 都是丟給你你一大段xaml代碼。用c#代碼實現(xiàn)我是不傾向了 既然用wpf就得Xaml啊。首先我想到的是template嘛 wpf到處離不開template 。我想到的是一個border 套一個textblock嘛 然后讓文本內(nèi)容通過templateBinding到Text嘛 搞得不亦樂乎 ,并且也確實很快就達到了我要的效果:
請輸入內(nèi)容22
最后仔細(xì)一看杯具的發(fā)現(xiàn)文本內(nèi)容輸入的時候沒有光標(biāo),然后我想到的就是把模板里的textblock改為textbox就完了嘛。好 一改更杯具了 水印效果抽風(fēng)了 最后發(fā)現(xiàn) 用c#代碼 強制讓文本框Focus() 貌似就可以 ,也許本身元素就是TextBox 模板里面 再放TextBox 就會導(dǎo)致焦點無法獲取造成各種混亂吧。最后弄不好 。
通過嘗試更改TextBox自帶的模板來達到效果
導(dǎo)出系統(tǒng)默認(rèn)textBox的模板visualTree ,經(jīng)過嘗試成功達到效果,值得一提的是 我納悶兒網(wǎng)上那些人為甚有的一貼出的xaml代碼里面就是scrollviewer呢 并且還能夠正確運行 讓我很難理解 ,一看原來系統(tǒng)默認(rèn)的就是scrollviewer 原來如此 還有Name=PART_ContentHost 只要寫成他自然而然就能被當(dāng)初內(nèi)容宿主處理??磥鞵ART_ContentHost 是個很特殊的系統(tǒng)名稱,還有就是多行文本框通過 設(shè)置AcceptsReturn="True" VerticalScrollBarVisibility="Auto" 屬性來達到:
請輸入內(nèi)容
另一種方式:
還有一種方式就是直接控制外圍的style trigger也可達到效果,只不過圓角border你必須要在text控件外再套border才能實現(xiàn):
最終效果:
感謝各位的閱讀!關(guān)于“WPF如何制作TextBox水印效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。