3

这是用于登录屏幕上的 TextBox 控件,其中 TextBox 包含用户名。我希望 TextBox 以下列方式执行:

  • 当内容为空时,内容应设置为“用户名”。

  • 单击文本框时,我希望将内容设置为“”,即;什么都没有(除非内容已经被用户编辑过)。

这是当今非常标准的功能,例如这个wordpress 登录(在页面顶部)。恐怕想不出比这更好的例子了:)

所以,无论如何,我已经使用 ViewModel 完成了这项工作,并且效果很好,但我想知道这是否可以纯粹从 XAML end完成。不关心业务逻辑,所以我认为没有虚拟机会更好。

4

3 回答 3

1

扩展的WPF 工具包有一个水印文本框,它可以满足您在纯 XAML 中的要求。那里还有其他图书馆。

使用扩展 WPF 工具包的好处是您可以在 Nuget 上获取它并直接通过 Visual Studio 安装和安装更新。

于 2012-05-21T15:45:19.557 回答
1

纯 XAML:

<Grid>
    <TextBox  Width="250"  VerticalAlignment="Center" HorizontalAlignment="Left" x:Name="SearchTermTextBox" Margin="5"/>
    <TextBlock IsHitTestVisible="False" Text="Enter Search Term Here" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" Foreground="DarkGray">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="Visibility" Value="Collapsed"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Text, ElementName=SearchTermTextBox}" Value="">
                        <Setter Property="Visibility" Value="Visible"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
</Grid>

取自:https ://stackoverflow.com/a/21672408/4423545

于 2019-01-16T05:09:30.777 回答