当前位置: 首页 > wzjs >正文

做网站被骗五千多wordpress多久学会

做网站被骗五千多,wordpress多久学会,青岛专门做网站的公司,网站建设w亿玛酷1负责文章目录 一、隧道事件和冒泡事件**事件路由机制****PreviewKeyDown 事件的用途****代码示例****事件参数****与 KeyDown 事件的区别****常见应用场景****注意事项** 一、隧道事件和冒泡事件 在WPF(Windows Presentation Foundation)中,Prev…

文章目录

  • 一、隧道事件和冒泡事件
      • **事件路由机制**
      • **PreviewKeyDown 事件的用途**
      • **代码示例**
      • **事件参数**
      • **与 KeyDown 事件的区别**
      • **常见应用场景**
      • **注意事项**

一、隧道事件和冒泡事件

在WPF(Windows Presentation Foundation)中,PreviewKeyDown 是一个隧道事件(Tunneling Event),用于在按键事件到达目标元素之前捕获和处理键盘输入。它是WPF事件路由机制的一部分,与冒泡事件 KeyDown 相对应。

事件路由机制

WPF采用**隧道(Tunneling)冒泡(Bubbling)**两种事件传播方式:

  1. 隧道事件(如 PreviewKeyDown):从根元素向下传递到目标元素,路径上的每个元素都有机会处理事件。
  2. 冒泡事件(如 KeyDown):从目标元素向上传递到根元素。

隧道事件通常用于预处理拦截输入,而冒泡事件用于常规处理。

PreviewKeyDown 事件的用途

  1. 全局按键拦截:在事件到达目标控件之前捕获按键,例如实现全局快捷键。
  2. 阻止事件传播:通过设置 e.Handled = true 可以停止事件继续传递。
  3. 处理特殊按键:检测修改键(如 CtrlAlt)或系统按键(如 TabEscape)。

代码示例

以下是一个简单的WPF窗口示例,演示如何处理 PreviewKeyDown 事件:

<Window x:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="PreviewKeyDown示例" Height="300" Width="400"PreviewKeyDown="Window_PreviewKeyDown"><Grid><TextBox x:Name="txtInput" HorizontalAlignment="Left" Height="23" Margin="100,100,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/></Grid>
</Window>
using System.Windows;
using System.Windows.Input;namespace WpfApp1
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void Window_PreviewKeyDown(object sender, KeyEventArgs e){// 检测是否按下了 Enter 键if (e.Key == Key.Enter){MessageBox.Show($"你按下了 Enter 键!当前焦点控件:{Keyboard.FocusedElement}");// 阻止事件继续传播e.Handled = true;}}}
}

事件参数

PreviewKeyDown 事件传递的 KeyEventArgs 包含以下关键属性:

  • Key:获取按下的键(枚举值,如 Key.EnterKey.Escape)。
  • SystemKey:获取系统键(如 AltF10)。
  • KeyStates:获取键的状态(如按下、释放)。
  • Handled:设置为 true 可阻止事件继续传递。

与 KeyDown 事件的区别

特性PreviewKeyDownKeyDown
事件类型隧道事件(自上而下)冒泡事件(自下而上)
触发时机在按键被系统处理前在按键被系统处理后
典型用途预处理、全局拦截常规按键处理
事件优先级先触发后触发

常见应用场景

  1. 全局快捷键:在窗口级别捕获 Ctrl+CF5 等组合键。
  2. 输入验证:阻止特定按键输入(如禁止在数字框中输入字母)。
  3. 导航控制:处理 Tab 键或方向键的特殊行为。

注意事项

  • 事件处理顺序:隧道事件(PreviewXXX)总是先于冒泡事件触发。
  • 性能考虑:避免在 PreviewKeyDown 中执行耗时操作,以免影响UI响应性。
  • 事件取消:设置 e.Handled = true 会同时取消隧道和冒泡阶段的后续事件。

如果需要进一步定制键盘行为,可以结合 PreviewKeyUpKeyPress(文本输入)等事件使用。

例子
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace WpfApp2
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void MainWindow_event(object sender, KeyEventArgs e){MessageBox.Show("main_window");}private void Button_event(object sender, KeyEventArgs e){MessageBox.Show("button_window");}private void Window_KeyDown(object sender, KeyEventArgs e){MessageBox.Show("MainWindow_被按下去");}private void Button_KeyDown(object sender, KeyEventArgs e){MessageBox.Show("button_被按下去");}private void Grid_KeyDown(object sender, KeyEventArgs e){MessageBox.Show("Grid_被按下去");e.Handled = true;}}
}
<Window x:Class="WpfApp2.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:WpfApp2"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"PreviewKeyDown="MainWindow_event"KeyDown="Window_KeyDown"><Grid KeyDown="Grid_KeyDown"><Button PreviewKeyDown="Button_event" Content="hello world"Height="50"Width="80"KeyDown="Button_KeyDown" RenderTransformOrigin="0.5,0.5"><Button.RenderTransform><TransformGroup><ScaleTransform/><SkewTransform/><RotateTransform Angle="38.359"/><TranslateTransform/></TransformGroup></Button.RenderTransform></Button></Grid>
</Window>

文章转载自:

http://tluigqEQ.mdmxf.cn
http://ug7zl71F.mdmxf.cn
http://OJcaBhDu.mdmxf.cn
http://3IGmd2Vw.mdmxf.cn
http://78UPm7cN.mdmxf.cn
http://dLoX6P6W.mdmxf.cn
http://Ow33gt76.mdmxf.cn
http://cnju1Wrr.mdmxf.cn
http://YKWuGUet.mdmxf.cn
http://Z73NaEr1.mdmxf.cn
http://hq27WgmH.mdmxf.cn
http://tXgTOICU.mdmxf.cn
http://DJfaxQs3.mdmxf.cn
http://le04dVUZ.mdmxf.cn
http://XRGeJKjc.mdmxf.cn
http://RPT8Egur.mdmxf.cn
http://G0NQbsQb.mdmxf.cn
http://vjjlYpJ0.mdmxf.cn
http://kWWNNfdj.mdmxf.cn
http://ujdMQbOa.mdmxf.cn
http://rbPAfH9Q.mdmxf.cn
http://DqRy0dhJ.mdmxf.cn
http://zdAzoUcn.mdmxf.cn
http://wF9W6OtN.mdmxf.cn
http://d1rHcu8t.mdmxf.cn
http://FRDraKyl.mdmxf.cn
http://tZw6ArwC.mdmxf.cn
http://uceTFvQT.mdmxf.cn
http://mz38eYZY.mdmxf.cn
http://7Ty8YsU7.mdmxf.cn
http://www.dtcms.com/wzjs/627719.html

相关文章:

  • 常州网站建设平台wordpress域名换了打不开
  • asp.net 网站 价格职业培训机构管理系统
  • 网站建设課程网站素材资源
  • 青海网站建设加q5299丶14602做词桂林市区有什么好玩的地方景点
  • 怎么查百度收录网站吗一分钟新闻口播稿
  • 关于江西建设监督网网站迁移长沙网站建设外贸
  • 网站开发售后工作装修公司展厅布置方案
  • 做农产品的网站做业务网站
  • 关于网页制作的网站设计制作小车教学视频
  • 帝国 cms 网站关键字摄影设计说明模板
  • 民宿网站建设企查查企业信息查询手机版下载
  • 鹤壁企业网站建设做电商如何推广
  • 手机网站建设 小程序龙岩特色
  • 广告网站大全亚马逊网网站建设规划报告
  • 常见的英文网站企业电子商务网站开发实训目的
  • 深圳团购网站设计多少钱做网站tt0546
  • 网站建设做什么会计分录网站建设属于无形资产
  • 网站建设的功能和定位广告软文范例大全100
  • 如何快速提高网站关键词排名全程营销网站建设公司
  • 新手怎么做网站推广网易企业邮箱如何申请注册
  • 上海建设部网站淘宝购物网站的建设
  • 企业网站备案备注太原建站公司点击查看
  • 做小型网站的公司大公司的网站是怎么建的
  • 域名买卖网站网页设计公司的产品网站
  • 成都商城类网站设计怎么用PS做网站广告图
  • 徐州建站义乌城市建设规划网站
  • 适合vue做的网站类型jfinal怎么做网站
  • 南宁世尊商贸网站建设谷歌seo培训
  • 模板网站定制网站html导入wordpress
  • 乐清柳市网站建设公司网站建设预付款如何付