这适用于登录屏幕上的TextBox控件,其中TextBox包含用户名。我希望TextBox以下列方式执行:
当内容为空时,内容应设置为“用户名”。
单击TextBox时,我希望将内容设置为 “”,即没有(除非内容已由用户编辑)。
这是一个非常标准的功能,如今wordpress login(在页面顶部)。 没想到比这更好的例子我害怕:)
所以,无论如何,我已经使用ViewModel完成了这项工作并且运行良好,但我想知道是否可以完全来自XAML结束。没有业务逻辑,所以我认为没有VM就可以做得更好。
答案 0 :(得分:6)
查找以下示例可帮助您找到自己的方式。
http://bendewey.wordpress.com/2008/09/27/wpf-shadowed-textbox-watermark/
http://www.c-sharpcorner.com/uploadfile/rahul4_saxena/watermark-textbox-in-wpf/
http://www.codeproject.com/Articles/26977/A-WatermarkTextBox-in-3-lines-of-XAML
答案 1 :(得分:1)
你试过上网吗?这个stackoverflow帖子(我的bing结果中的第一个)似乎会有所帮助 Watermark / hint text / placeholder TextBox in WPF
答案 2 :(得分:1)
Extended WPF Toolkit有一个Watermark Textbox,可以满足您在纯XAML中的要求。还有其他图书馆。
使用Extended WPF Toolkit的好处是你可以在Nuget上获取它并直接通过Visual Studio安装和安装更新。
答案 3 :(得分:0)
纯XAML:
<Grid>
<TextBox Width="250" VerticalAlignment="Center" HorizontalAlignment="Left" x:Name="SearchTermTextBox" Margin="5"/>
<TextBlock IsHitTestVisible="False" Text="Enter Search Term Here" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Foreground="DarkGray">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=SearchTermTextBox}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>