Edw*_*ony 1 c# wpf xaml windows-phone-8
我已经阅读了这个 将占位符文本添加到文本框中
问题是,占位符TextBox必须易于重用.使用XAML或Code.也许是这样的
<my:TextBoxPlaceholder Placeholder="this is the placeholder"/>
Run Code Online (Sandbox Code Playgroud)
要么
<TextBox Placeholder="this is the placeholder"
Type="/*staticresources*/PlaceholderTextBox"/>
Run Code Online (Sandbox Code Playgroud)
这就是我所说的.(我从Instagram Beta获得的屏幕截图).

如您所见,在第二张图片中,"添加注释"占位符位于TextBox的最顶层,它覆盖了条带线.占位符是顶部的图片还是TextBlock?
and*_*ubi 13
您可以使用Windows Phone Toolkit中的PhoneTextBox控件.
它有一个Hint属性,允许您设置占位符:
<toolkit:PhoneTextBox Hint="Add a coment" Text={Binding ...} .../>
Run Code Online (Sandbox Code Playgroud)
MacGile对您提到的主题的第三条评论显示了一种使用特殊样式扩展普通TextBox的相当简单的方法.如果您在TextBox上应用此样式,则可以使用它,就像他说明的那样:
<TextBox Style="{StaticResource placeHolder}"
Tag="Name of customer" Width="150" Height="24"/>
Run Code Online (Sandbox Code Playgroud)
该Tag属性是您输入占位符文本的位置.该样式旨在根据输入的文本更改颜色,并在用户编辑时返回全彩黑色.
实现目标的第二种方法是将TextBox放在网格中并在其上添加一个TextBlock,当TextBlock不为空(用户输入内容)时,您将隐藏它.样品:
<Grid>
<TextBox x:Name="MyTextBox" />
<TextBlock Text="enter name..." Foreground="#CCC"
Visibility="{Binding ElementName=MyTextBox, Path=Text, Converter={StaticResource StringLengthToVisibilityConverter}}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
其中StringLengthToVisibilityConvertera IValueConverter是Visibility.Visible在字符串参数为空时返回的.您可以将其转换为自定义控件或UserControl,它将以您需要的方式工作.