32.失焦提示 C#例子 WPF例子

一个提示输入,但是会在输入和聚焦时消失,其他时候显示

原理就是一旦聚焦就不显示提示

失焦时如果有内容不操作、没有内容就显示提示

C#代码:

cs 复制代码
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace practice
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void got_Focus(object sender, RoutedEventArgs e)
        {
            TextBlock1.Visibility = Visibility.Collapsed;
        }

        private void lost_Focus(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(TextBox1.Text))
            {
                TextBlock1.Visibility = Visibility.Visible;
            }
        }
    }
}

XAML代码:

XML 复制代码
<Window x:Class="practice.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:practice"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBox Name="TextBox1" Width="300" VerticalAlignment="Center" HorizontalAlignment="Center" GotFocus="got_Focus" LostFocus="lost_Focus"/>
        <TextBlock Name="TextBlock1" Text="请在这里输入" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Gray" IsHitTestVisible="False"/>
        <TextBox HorizontalAlignment="Left" Margin="250,170,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>

    </Grid>
</Window>

Label用于说明,比如放在按钮前

Textblock用于显示

常见的属性

VerticalAlignment="Center":垂直对齐方式设置为居中。

HorizontalAlignment="Center":水平对齐方式设置为居中。

foreground="Gray": 这个属性设置了元素的前景色

IsHitTestVisible="False": 这个属性指定元素是否参与命中测试。命中测试是UI框架用来确定用户输入(如鼠标点击或触摸)是否指向特定元素的过程。当IsHitTestVisible设置为False时,元素将不会响应鼠标事件、触摸事件等用户交互。这通常用于使元素在视觉上可见但不可交互,例如,用于显示信息但不希望用户能够点击或与之交互的文本或图形。

PlaceholderTextBlock.Visibility = Visibility.Collapsed;

Visible 表示控件是可见的,它会占据布局空间。

Collapsed 表示控件是不可见的,并且它不会占据任何布局空间。这与 Hidden 不同(尽管在某些UI框架中可能存在 Hidden 状态),Hidden 通常意味着控件不可见但仍然占据其布局空间。

相关推荐
特立独行的猫a9 小时前
用仓颉写一个 Tauri:IPC 的每次往返实现原理(web层到仓颉层的触发过程)
前端·ui·harmonyos·tauri·鸿蒙·仓颉
传奇开心果编程9 小时前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack
周杰伦fans11 小时前
轻量模型高并发推理优化技巧
开发语言·人工智能·c#
周杰伦fans11 小时前
C#对话摘要降低Token消耗
人工智能·后端·c#
Cx330❀13 小时前
【Qt 进阶指南】详解 Qt 常用标准对话框与主窗口组件架构
开发语言·qt·ui·性能优化·架构·图形渲染
传奇开心果编程14 小时前
【ArkUI进阶练中学】第5课:编译优化与包体积进
学习·ui·华为·harmonyos
en.en..15 小时前
分清 b 与 B:比特、字节(告别8倍、容量、缓冲区误区)
c#
传奇开心果编程15 小时前
【ArkUI进阶练中学】第10课:架构设计与工程化最佳实践
学习·ui·华为·harmonyos
ly768915 小时前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步
miofly15 小时前
GitHub 今日推荐|REDox:64 位 token 表示结构化数据,内存占用降 70% 支持多格式互转
开源·c#·github