.net - 如何向 WPF 文本框添加提示文本?

标签 .net wpf user-interface textbox

例如,当文本框为空时,Facebook 的搜索文本框中会显示“搜索”提示文本。

如何使用 WPF 文本框实现此目的?

Facebook's search textbox

最佳答案

您可以使用 VisualBrushStyle 中的一些触发器更轻松地完成此操作:

<TextBox>
    <TextBox.Style>
        <Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib">
            <Style.Resources>
                <VisualBrush x:Key="CueBannerBrush" AlignmentX="Left" AlignmentY="Center" Stretch="None">
                    <VisualBrush.Visual>
                        <Label Content="Search" Foreground="LightGray" />
                    </VisualBrush.Visual>
                </VisualBrush>
            </Style.Resources>
            <Style.Triggers>
                <Trigger Property="Text" Value="{x:Static sys:String.Empty}">
                    <Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
                </Trigger>
                <Trigger Property="Text" Value="{x:Null}">
                    <Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
                </Trigger>
                <Trigger Property="IsKeyboardFocused" Value="True">
                    <Setter Property="Background" Value="White" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

为了提高此样式的可重用性,您还可以创建一组附加属性来控制实际的提示横幅文本、颜色、方向等。

关于.net - 如何向 WPF 文本框添加提示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425618/

相关文章:

c# - 用于将 WCF 服务发布到 Azure 的 web.config 更改

wpf - 如何进行Wpf TabItem样式HeaderTemplate绑定(bind)?

c# - WPF ListView 将 SelectedItem 与相同的项目混淆

android - 在 Android 中的监听器之间切换

user-interface - 如何弥合我的数据库设计和用户界面设计之间的差距?

.net - iPhone/Windows Mobile开发平台的长期潜力

c# - 如何旋转 WinRT Xaml Toolkit 柱形图的标签?

c# - TextReader/StreamReader 中是否有选项 "go to line"?

c# - 创建自定义控件的正确方法是什么

java - 帮助简单的框架和图形