0

我正在尝试使水印出现在 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 中你可以使用一个简单地通过事件的层。

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

4

3 回答 3

2

我建议查看WinRT XAML 工具包的 WatermarkTextBox

于 2012-08-01T18:22:07.100 回答
0

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

于 2012-08-01T17:43:14.290 回答
0

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

于 2013-04-10T10:38:37.403 回答