Home » Source Code » XAML only WPF Watermarked TextBox

XAML only WPF Watermarked TextBox

maninwest
2015-03-06 01:54:28
The author
View(s):
Download(s): 1
Point (s): 1 
Category Category:
XAMLXAML C SharpC#

Description

Translated by maninwest@Codeforge Author:MatthewThomas@CodeProject
A lot of the examples I found on how to add a watermark to a TextBox involve a significant amount of code-behind, handling text changed events, or making use of a customIValueConverterorIMultiValueConverter. In this article, I'll show how to add a watermark to a TextBox by only using XAML markup.
Background
A demonstration project I recently worked on was pre-setting the text of a textbox as kind of a poor-man's watermark. But when you started typing in the box, you have to first clear away the default value. That's not a watermark, that's just annoying. I wanted to fix this, but I didn't want to write a bunch of C# code to make it happen. I knew it could be done in XAML.
Using the code
Let's just jump right to it

    
    
        
            
        
    

First we wrap everthing in aGrid. We'll use this as a container to define our overall layout. Then we add ourTextBoxfor user input, and ourTextBlockas our watermark. Since we don't specify row and column definitions, these controls will overlap - and we want that; a watermark should visually appear on top of a textbox. On our TextBlock however, we don't want it be included in any hit test results, so we'll set the IsHitTestVisible property to false.
For theTextBlock's style, we'll default it to collapsed, and then set it to visible when our DataContext's Text property does not have content AND when the TextBox does not have keyboard focus.
And that's it! No converters, no extensions, just pure XAML.

Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
WatermarkExample.sln1,017.00 B2015-03-04 22:11
01.97 kB
App.config189.00 B2015-03-04 22:11
App.xaml587.00 B2015-03-04 22:11
App.xaml.cs349.00 B2015-03-04 22:11
MainWindow.xaml2.18 kB2015-03-04 22:11
MainWindow.xaml.cs682.00 B2015-03-04 22:11
packages.config296.00 B2015-03-04 22:11
01.97 kB
AssemblyInfo.cs2.24 kB2015-03-04 22:11
Resources.Designer.cs2.79 kB2015-03-04 22:11
Resources.resx5.48 kB2015-03-04 22:11
Settings.Designer.cs1.08 kB2015-03-04 22:11
Settings.settings201.00 B2015-03-04 22:11
01.97 kB
MainViewModel.cs1.60 kB2015-03-04 22:11
ViewModelLocator.cs1.36 kB2015-03-04 22:11
WatermarkExample.csproj5.53 kB2015-03-04 22:11
...
Sponsored links

Comments

(Add your comment, get 0.1 Point)
Minimum:15 words, Maximum:160 words
qiuchenzhimeng
2015-04-23

多谢楼主的分析哈,非常感谢。这个文件对我非常有用,消除锯齿效果很不错

2063162649
2017-01-20

多谢楼主的分析哈,非常感谢。这个文件对我非常有用,消除锯齿效果很不错

  • 1
  • Page 1
  • Total 1

XAML only WPF Watermarked TextBox (11.36 kB)

Need 1 Point(s)
Your Point (s)

Your Point isn't enough.

Get 22 Point immediately by PayPal

Point will be added to your account automatically after the transaction.

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more Points

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D