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>

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

相关推荐
beyond谚语1 天前
第一章 WPF概述
wpf
necessary6532 天前
从工行“余额归零”事件看CAP定理:当金融系统在一致性与可用性之间做出选择
分布式·金融·wpf·可用性测试
棉晗榜2 天前
WPF隐藏控件后,怎么让其上部的控件空间自动撑高
wpf
壹佰大多3 天前
【Redisson分布式锁源码分析-3】
数据结构·分布式·mysql·spring·spring cloud·wpf·lua
LateFrames3 天前
以小白视角尝试 WPF / WinUI3 / MAUI / MAUI Blazor 构建 Windows 桌面程序
windows·wpf·maui·mauiblazor·winui3
偶尔的鼠标人4 天前
Avalonia/WPF 打开子窗口,并且跨页面传值
c#·wpf·mvvm·avalonia
玖笙&4 天前
✨WPF编程进阶【6.1】:图形原则(附源码)
c++·c#·wpf·visual studio
lixy5794 天前
WPF检测网络状态切换
wpf
纸照片4 天前
WPF中为Button设置IsMouseOver和IsPressed事件中改变背景颜色不起作用
c#·.net·wpf
Aevget4 天前
DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(四)
ui·.net·wpf·devexpress·wpf控件