我想爲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. Silverlight搜索文本框中的默認文本
- 2. WPF文本框使用默認文本
- 3. 如何實現用DataTemplate搜索WPF ListBox?
- 4. 將SharePoint 2010中的默認搜索框替換爲自定義搜索框
- 5. WPF文本框的搜索組件
- 6. 造型的默認WordPress的搜索框
- 7. 如何從Google搜索框中刪除默認的Google搜索值?
- 8. 如何設置jqGrid中搜索框的默認列?
- 9. 如何實現默認NSFetchedResultsControllerDelegate
- 10. textbox中的默認文本wpf
- 11. 出現在密碼文本框中的默認文本..如何使其消失?
- 12. 如何爲文本框值實現htmlspecialchars?
- 13. WPF:如何樣式或禁用文本框的默認文本菜單
- 14. 如何將默認搜索設置爲文件搜索Vim插件CtrlP?
- 15. 默認FB搜索
- 16. 如何避免文本框中的默認文本?
- 17. 默認爲文本搜索與紅寶石和鐵軌
- 18. 如何爲郵箱的每個框實現'搜索功能'
- 19. 如何在堆棧溢出網站中實現搜索文本框?
- 20. 在Flex 3 Textarea中,如何實現文本搜索功能
- 21. 如何讓Jquery DataTable默認搜索框過濾最少的列?
- 22. 我如何搜索文本框中的視覺基本文本
- 23. 如何實現redux搜索
- 24. 如何實現搜索?
- 25. 使用默認文本的文本框
- 26. 文本框的默認文本值
- 27. 如何實現帶編輯文本的快速搜索功能
- 28. 在wpf文本框和c#中設置默認值
- 29. 如何調用heightForRowAtIndexPath的默認實現?
- 30. asp.net文本框默認值
我剛纔已經回答了另一個問題問同樣的事情:http://stackoverflow.com/a/10693516/862501 – mxgg250 2012-05-21 22:36:42