【问题标题】:Create WPF Watermark in Pure XAML在纯 XAML 中创建 WPF 水印
【发布时间】:2012-05-21 14:52:08
【问题描述】:

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

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

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

这是当今非常标准的功能,类似于 wordpress login(在页面顶部)。 恐怕没有比这更好的例子了 :)

所以,无论如何,我已经使用 ViewModel 完成了这项工作,并且效果很好,但我想知道这是否可以完全从 XAML 端完成。不关心业务逻辑,所以我认为最好不使用 VM。

【问题讨论】:

  • Watermark TextBox in WPF的可能重复
  • 你试过搜索互联网吗?这篇 stackoverflow 帖子(我的 bing 结果中的第一个)似乎对https://stackoverflow.com/questions/833943/watermark-textbox-in-wpf 有帮助
  • @Robaticus:这些答案只显示代码逻辑,我希望能够使用纯 XAML 来做到这一点。
  • 我怀疑你是否能够在“纯 xaml”中做到这一点。此外,在给出的示例中,唯一的代码是可见性转换器。没有业务逻辑或视图模型在起作用。

标签: c# wpf xaml


【解决方案1】:
【解决方案2】:

Extended WPF Toolkit 有一个 Watermark Textbox,它可以满足您在纯 XAML 中的要求。还有其他图书馆。

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

【讨论】:

    【解决方案3】:

    纯 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多