带有按钮的Windows Phone TextBox

时间:2015-02-07 02:44:34

标签: c# windows-phone-8 textbox

我正在为Windows Phone 8创建一个应用程序,我需要一个搜索框。

理论上,我想要这个:

enter image description here

用户写下他想要搜索的内容。

虽然我想在最后有一个按钮(由X表示),当用户点击它时,它会删除所有文本。此按钮也应仅在有文本时显示,或者与默认文本不同。

如果我拥有(图片)的实际问题是,当我关注文本框时,按钮会消失。

我该怎么办?看过几个网站,但不能做我想要的。

编辑:XAML

<TextBox VerticalAlignment="Stretch"  HorizontalAlignment="Stretch" Grid.Row="0" Text="find" />
<Button Content="X" Width="40" Height="40" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="10" Grid.Row="0" />

2 个答案:

答案 0 :(得分:2)

默认情况下,点按该文本框时,该文本框将变为白色。它与你的&#34; X&#34;颜色相同。按钮。将按钮的颜色更改为其他颜色。

添加前景=&#34;黑色&#34;您的XAML按钮或从颜色选择器中选择一种颜色。

答案 1 :(得分:1)

您必须使用文本框GotFocus事件和LostFocus事件。它看起来像谷歌搜索框。它一定会帮到你。 首先从here

下载按钮的图像

<强> XAML:

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,531">
            <TextBox Name="txtSearch" 
                     Text="Search"
                     GotFocus="txtSearch_GotFocus"
                     LostFocus="txtSearch_LostFocus"
                     VerticalAlignment="Top"
                     Foreground="Gray"/>

              <Button 
                    Click="Button_Click"
                    Width="50" 
                    Height="60" 
                    BorderBrush="Transparent"
                     HorizontalAlignment="Right" 
                     VerticalAlignment="Stretch"
                    Margin="10" Grid.Row="0">
                <Button.Background>
                    <ImageBrush Stretch="Uniform"  ImageSource="/box_drawings_light_diagonal_cross_u2573_icon_256x256.png" />
                </Button.Background>
            </Button>
           </Grid>

<强> XAML.CS:

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

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

    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        txtSearch.Text = "Search";
    }