TextBlock中的水印

时间:2012-08-01 08:49:43

标签: xaml windows-8 microsoft-metro winrt-xaml

我正在尝试在TexBox中显示水印,我使用Canvas标签完成了这项工作:

            <Canvas Height="60" Width="500" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,5">
            <TextBox Width="500" Height="30" Canvas.Left="0" Canvas.Top="0" FontSize="18"></TextBox>
            <TextBlock x:Name="whereAreyouWatermark" Canvas.Left="15" Canvas.Top="7" Height="30" FontSize="16" 
                       Foreground="#777777" Width="500">
                <Run x:Uid="text2"></Run> <Italic FontSize="13"><Run x:Uid="text3"></Run></Italic>
            </TextBlock>
        </Canvas>

但是,现在当光标越过文本块时,它不是“I”图标,只是普通指针。在CSS中,我会将光标更改为“指针:文本”。

如何在XAML中执行此操作?

此外,当按下我希望焦点转到背景文本框时,我认为最好的方法是截取文本块的gotfocus事件并将焦点内部代码传递给文本框。我认为在iOS中你可以使用一个简单地传递事件的层。

非常感谢 正如我们在伦敦一直所说的那样,我非常感兴趣; - )

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

将默认文本设置为某个内容,一旦获得焦点事件,请使用用户类型清除文本。当它的LostFocus再次放置水印时。您的IBeam游标不会成为此解决方案的问题。

答案 2 :(得分:0)

更简单的解决方案是将一些默认文本(将用作水印)设置为TextBox。在GotFocus事件中,清除后面代码中的文本。在LostFocus事件上,检查用户是否输入了一些文本或TextBox是否为空。如果它有一些用户文本,那就试试吧。如果它是空的,请放回水印文本!