我想爲WPF搜索TextBox實現類似「Changing the Default Text in the Search Box」的內容。當文本框爲空時,該文本框應該顯示一些灰色的「Search ...」文本,然後當輸入文本時它應該正常工作。鏈接的文章顯示瞭如何在javascript中執行此操作。如何在WPF中開始這條路?到目前爲止,我所擁有的最好主意是在主文件夾頂部的另一個文本框,當搜索文本框獲得焦點或文本時,該文本框就不可見。如何爲WPF中的搜索框實現默認文本?
回答
試試Kevin Moore的Bag-o-Tricks中的InfoTextBox示例。你可以從 http://work.j832.com/2008/01/real-update-to-bag-o-tricks.html
你可以改變文本框有灰色的文字,只要其空和一個變量,它會告訴你,是空的,所以,當你點擊搜索就不會去搜索「搜索...」
或者你可以使用類似於你所說的東西,但不是上面的文本框,你可以在下面有文字。如果頂部有一個帶有透明背景的文本框,並且底部有一個標籤,當頂部文本框爲空時應該可以解決問題。
和WPF一樣,有很多方法可以實現你的目標。
也許最簡潔的方法是將子類TextBox
並添加一個名爲HintText
的新屬性。只要Text
爲空(""
),您的控件的模板將顯示HintText
(可能以斜體和灰色顯示)。否則,它會像常規的TextBox
一樣顯示Text
。
不涉及編寫自己的控件的替代方法是重新模板TextBox
並使用Tag
屬性來存儲提示文本。
另一種替代方法是編寫一個UserControl
,結合了,比方說一個TextBox
,一個TextBlock
相同Grid
內部。 TextBlock
將包含提示文本,並且只有在TextBox
的Text
爲空時纔會顯示。這可能是最容易實現的,但也是最不靈活的。
下載它對於這些類型的東西我認爲最好的方式是使用視覺畫筆設置背景。 可視化畫筆可讓您使用Visual Elements繪製背景,並將其與基於文本爲空的觸發器結合起來並完成。
空列表框消息的例子在這裏,基本上是一樣的東西。 http://adammills.wordpress.com/2010/08/04/simple-empty-template-for-itemscontrols/
此樣式將使用背景屬性和一個可視化刷子顯示文本。一旦控件獲得焦點,文本將被刪除。
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="Enter value" Foreground="Gray"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="{x:Null}">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="Enter value" Foreground="Gray"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsFocused}" Value="True">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
簡單,在我看來這應該被標記爲很好的答案。 – 2013-04-26 15:27:46
我認爲WPF擴展工具包中包含的WatermarkTextBox完全符合你的要求。
http://wpftoolkit.codeplex.com/wikipage?title=WatermarkTextBox&referringTitle=Documentation
- 1. WPF文本框使用默認文本
- 2. 將默認搜索文本添加到搜索框html
- 3. 如何更改IOS中搜索欄中的默認文本?
- 4. 如何在wpf datagrid中繼承默認的文本框樣式?
- 5. 如何實現用DataTemplate搜索WPF ListBox?
- 6. 如何實現索引[]默認屬性
- 7. 如何在密碼框wpf中設置一些默認文本?
- 8. 將SharePoint 2010中的默認搜索框替換爲自定義搜索框
- 9. WPF文本框的搜索組件
- 10. 谷歌自定義搜索的搜索框中的默認值
- 11. 搜索框Webpart - 默認爲自定義搜索範圍
- 12. 如何在自動完成實現的文本框中設置默認值?
- 13. 造型的默認WordPress的搜索框
- 14. 如何從Google搜索框中刪除默認的Google搜索值?
- 15. EXTJS4-如何實現搜索框
- 16. 如何實現與WPF中的清除按鈕的文本框?
- 17. 默認數據表格搜索框文本
- 18. 如何設置jqGrid中搜索框的默認列?
- 19. 在jsp中實現mongodb文本搜索
- 20. textbox中的默認文本wpf
- 21. 出現在密碼文本框中的默認文本..如何使其消失?
- 22. WPF:如何樣式或禁用文本框的默認文本菜單
- 23. 如何爲文本框值實現htmlspecialchars?
- 24. 如何將默認搜索設置爲文件搜索Vim插件CtrlP?
- 25. 默認FB搜索
- 26. 如何刪除動態文本框中的默認文本
- 27. 如何避免文本框中的默認文本?
- 28. 如何使HTML文本框默認
- 29. 默認實現
- 30. 樣式默認文本菜單文本框在WPF
我剛纔已經回答了另一個問題問同樣的事情:http://stackoverflow.com/a/10693516/862501 – mxgg250 2012-05-21 22:36:42