首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将提示文本添加到WPF文本框?

如何将提示文本添加到WPF文本框?
EN

Stack Overflow用户
提问于 2011-09-15 11:41:56
回答 11查看 124.5K关注 0票数 119

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

如何在WPF文本框中实现这一点?

EN

回答 11

Stack Overflow用户

发布于 2011-09-15 23:56:32

Style中使用VisualBrush和一些触发器可以更轻松地实现这一点

代码语言:javascript
复制
<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>

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

票数 172
EN

Stack Overflow用户

发布于 2015-02-21 01:16:22

这是我的简单解决方案,改编自微软(https://code.msdn.microsoft.com/windowsapps/How-to-add-a-hint-text-to-ed66a3c6)

代码语言:javascript
复制
    <Grid Background="White" HorizontalAlignment="Right" VerticalAlignment="Top"  >
        <!-- overlay with hint text -->
        <TextBlock Margin="5,2" MinWidth="50" Text="Suche..." 
                   Foreground="LightSteelBlue" Visibility="{Binding ElementName=txtSearchBox, Path=Text.IsEmpty, Converter={StaticResource MyBoolToVisibilityConverter}}" IsHitTestVisible="False"/>
        <!-- enter term here -->
        <TextBox MinWidth="50" Name="txtSearchBox" Background="Transparent" />
    </Grid>
票数 66
EN

Stack Overflow用户

发布于 2018-12-30 16:16:07

使用materialDesign HintAssist怎么样?我正在使用这个,你也可以添加浮动提示:

代码语言:javascript
复制
<TextBox Width="150" Height="40" Text="hello" materialDesign:HintAssist.Hint="address"  materialDesign:HintAssist.IsFloating="True"></TextBox>

我使用Nuget包安装了Material Design在documentation链接中有安装指南

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7425618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档