1

我正在使用 Visual Studio 2012 为 Windows 8 应用程序创建登录页面。正如预期的那样,我添加了一个用户名和密码框,但是我不想在框旁边放置文本以显示每个框的用途,而是将其写在框中,如下图所示:http://www.windows8designhandbook .com/img/gallery/nasdaq/nasdaq_splash_login.png

如何在其中获取默认文本?我使用文本框作为用户 ID,使用密码框作为密码。

4

1 回答 1

0

OP 在他的问题的更新中包括以下内容:

我想我找到了答案:http: //julmar.com/blog/mark/ ?p=300

链接的文章在开头段落中包含以下摘要:

在上一篇文章中,我写了关于 Windows 应用商店应用程序的 Blend 行为,以将水印添加到 TextBox。我得到的下一个问题是“嗯,PasswordBox 怎么样?” PasswordBox 有点小技巧,因为它不允许明文显示文本——所以我们更改 Text 属性的小技巧在这里不起作用。所以,相反,让我们变得有点 hacky(或者聪明,取决于你如何看待它,我想)。我们可以使用相同的事件系列(GotFocus/LostFocus/Loaded),但不是更改文本,而是在 PasswordBox 的可视化树中添加一个新的 TextBlock 来显示我们的水印文本。

文章在 Windows 应用商店应用程序中为 PasswordBox 添加水印
博客穿越荒野:探索 .NET 4.0、iOS、WPF、MVVM 和其他酷技术的世界

一个类似的问题Create WPF Watermark in Pure XAML包含指向代码项目文章A WatermarkTextBox in 3 lines of XAML的链接,它提出了一个同样适用于常规文本框或密码文本框的解决方案:

<Grid Background="{StaticResource brushWatermarkBackground}">
    <TextBlock Margin="5,2"
               Text="Prompt..."
               Foreground="{StaticResource brushForeground}"
               Visibility="{Binding ElementName=txtUserEntry, 
                                    Path=Text.IsEmpty,
                                    Converter={StaticResource
                                        BooleanToVisibilityConverter}}" />
    <TextBox Name="txtUserEntry"
             Background="Transparent"
             BorderBrush="{StaticResource brushBorder}" />
</Grid>
于 2013-06-13T17:53:37.483 回答