WP7文本框,文本框内有标题

时间:2011-09-09 22:37:36

标签: windows-phone-7

我想有一个文本框,让用户输入一些文字(显然)。让我们说它是'标题'。是否有预先构建的控件,在文本框内显示字段的名称(本例中为标题),然后在用户输入字段时将其清除。示例:此页面顶部的搜索框具有“搜索”,但是当您输入框时,它会消失。

2 个答案:

答案 0 :(得分:1)

Watermarked TextBox

我想我也记得它也在芒果Silverlight工具包中,如果我错了,请纠正我:     Mango Silverlight Toolkit

答案 1 :(得分:0)

这是一个例子。将GotFocus和LostFocus事件放在文本框中(在.xaml页面中)。

<TextBox x:Name="UrlTextBox" Text="Search" Margin="0,0,98,0" GotFocus="UrlTextBox_GotFocus" LostFocus="UrlTextBox_LostFocus"/>       

在xaml.cs页面中,添加以下代码 -

    private void UrlTextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        if (UrlTextBox.Text == "Search")
        {
            UrlTextBox.Text = "";
            SolidColorBrush Brush1 = new SolidColorBrush();
            Brush1.Color = Colors.Gray;
            UrlTextBox.Foreground = Brush1;
        }

        else
        {
            char[] strDataAsChars = UrlTextBox.Text.ToCharArray();
            int i = 0;
            for (i = UrlTextBox.SelectionStart - 1; ((i >= 0) &&
                               (strDataAsChars[i] != ' ')); --i) ;
            int selBegin = i + 1;
            for (i = UrlTextBox.SelectionStart; ((i < strDataAsChars.Length) &&
                                              (strDataAsChars[i] != ' ')); ++i) ;
            int selEnd = i;
            UrlTextBox.Select(selBegin, selEnd - selBegin);
        }
    }

    private void UrlTextBox_LostFocus(object sender, RoutedEventArgs e)
    {
        if (UrlTextBox.Text == String.Empty)
        {
            UrlTextBox.Text = "Search";
            SolidColorBrush Brush2 = new SolidColorBrush();
            Brush2.Color = Colors.Gray;
            UrlTextBox.Foreground = Brush2;
        }
    }