wpf 输入框 在输入时去除水印

wpf ScrollViewer 在输入数据时去除水印

在WPF(Windows Presentation Foundation)中,ScrollViewer控件通常用于显示滚动内容。如果你想在ScrollViewer中使用数据输入(例如文本输入),并且希望在输入时去除水印(通常指的是文本框中的提示文字),你可以通过以下几种方式实现:

使用样式和触发器(推荐)

最简单且最常见的方法是使用WPF的样式和触发器来控制水印的显示和隐藏。这种方法不需要修改任何属性值,而是通过样式和触发器来动态地显示或隐藏水印。

复制代码
<ScrollViewer>
    <TextBox Style="{StaticResource WatermarkStyle}" />
</ScrollViewer>

在资源字典中定义WatermarkStyle

复制代码
<Style x:Key="WatermarkStyle" TargetType="{x:Type TextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TextBox}">
                <Grid>
                    <TextBox x:Name="textSource" 
                             Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                             Background="Transparent" 
                             Padding="5,2" 
                             VerticalContentAlignment="Center"/>
                    <Label Visibility="Collapsed" x:Name="watermark" IsHitTestVisible="False" Padding="5,0">请输入内容</Label>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="Text" Value="">
            <Setter TargetName="watermark" Property="Visibility" Value="Visible"/>
        </Trigger>
        <Trigger Property="IsKeyboardFocused" Value="True">
            <Setter TargetName="watermark" Property="Visibility" Value="Collapsed"/>
        </Trigger>
    </Style.Triggers>
</Style>

在这个方法中,当文本框为空且未获得焦点时,水印可见;当文本框获得焦点或有文本时,水印隐藏。这样,你就可以在用户输入时自动去除水印了。

相关推荐
lingxiao1688840 分钟前
WebApi详解+Unity注入--上篇:基于Framework的WebApi
c#·wpf·web
是一个Bug2 小时前
Java后端开发面试题清单(50道) - 分布式基础
java·分布式·wpf
无心水3 小时前
【分布式利器:腾讯TSF】4、TSF配置中心深度解析:微服务动态配置的终极解决方案
分布式·微服务·架构·wpf·分布式利器·腾讯tsf·分布式利器:腾讯tsf
lingxiao1688815 小时前
WebApi详解+Unity注入--下篇:Unity注入
unity·c#·wpf
无心水1 天前
【分布式利器:腾讯TSF】6、TSF可观测性体系建设实战:Java全链路Metrics+Tracing+Logging落地
java·分布式·架构·wpf·分布式利器·腾讯tsf·分布式利器:腾讯tsf
故事不长丨2 天前
C#字典(Dictionary)全面解析:从基础用法到实战优化
开发语言·c#·wpf·哈希算法·字典·dictionary·键值对
冰茶_2 天前
WPF路由事件:隧道与冒泡机制解析
学习·c#·.net·wpf·.netcore·mvvm
He BianGu2 天前
【笔记】 WPF中CollectionChangedEventManager功能详细介绍
笔记·wpf
张人玉2 天前
C#WPF页面布局及其属性
开发语言·c#·wpf
故事不长丨3 天前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典