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

爬虫做视频网站详细的营销推广方案

爬虫做视频网站,详细的营销推广方案,模板在线制作,建站免费空间C# WPF编程-路由事件 路由事件概要路由事件的三种方式 WPF事件WPF最重要的5类事件:生命周期事件 鼠标事件键盘事件多点触控输入原始触控 路由事件概要 路由事件是具有更强传播能力的事件,它们可在元素树中向上冒泡和向下隧道传播,并沿着传播…

C# WPF编程-路由事件

  • 路由事件概要
    • 路由事件的三种方式
  • WPF事件
    • WPF最重要的5类事件:
    • 生命周期事件
  • 鼠标事件
  • 键盘事件
  • 多点触控输入
    • 原始触控

路由事件概要

路由事件是具有更强传播能力的事件,它们可在元素树中向上冒泡和向下隧道传播,并沿着传播路径被事件处理程序处理。

路由事件的三种方式

  1. 与普通.NET事件类似的直接路由事件(direct event)。
  2. 在包含层次中向上传递的冒泡路由事件(bubbling event)。
  3. 在包含层次中向下传递的隧道路由事件(tunneling event)。

定义、注册和封装路由事件

以Button的Click事件为例:

public abstract class ButtonBase: ContentControl,...
{// 定义事件public static readonly RouteEvent ClickEvent;// 注册事件static ButtonBase(){ButtonBase.ClickEvent = EventManager.RegisterRouteEvent("Click", RoutingStrategy.Bullle, typeof(RoutedEventHandler), typeof(ButtonBase));...}// 封装事件public event RoutedEventHandler Click{add{base.AddHandler(ButtonBase.ClickEvent, value);}remove{base.RemoveHandler(ButtonBase.ClickEvent, value);}} ...
}
  • 共享路由事件
    可在类之间共享路由事件的定义。
    如:UIElement.MouseUpEvent = Mouse.MouseUpEvent.AddOwner(typeof(UIElement));

  • 引发路由事件
    与所有事件类似,定义类需要在一定情况下引发事件。使用RaiseEvent()方法引发事件。
    如:RouteEventArgs e = new RouteEventArgs(ButtonBase.ClickEvent, this);
    base.RaiseEvent(e);

  • 处理路由事件
    XAML标签中定义:
    < Image Source=“1.png” Name=“img” MouseUp=“img_MouseUp” />
    C# 代码中:
    private void img_MouseUp(object sender, MouseButtonEventArgs e)
    {
    }

  1. 添加事件:

    • 代码中和XAML标记中同样效果:
      img.MouseUp += new MouseButtonEventHandler(img_MouseUp);

    • 更精简的语法,隐式地创建合适的委托对象:
      img.MouseUp += img_MouseUp;

    • 自行调用UIElement.AddHandler()方法直接连接事件:
      img.AddHandler(Image.MouseUpEvent, new MouseButtonEventHandler(img_MouseUp));

  2. 移除事件:

    • 使用-=运算符:
      img.MouseUp -= img_MouseUp;
    • 使用UIElement.RemoveHandler()方法:
      img.RemoveHandler(Image.MouseUpEvent, new MouseButtonEventHandler(img_MouseUp));

RouteEventArgs类:
在这里插入图片描述

附件事件:
所有按键的单击事件都会触发调用DoSomething事件处理函数
在这里插入图片描述
隧道事件:
隧道路由事件易于识别,它们都以Preview开头。WPF通常成对地定义冒泡路由事件和隧道路由事件。如冒泡事件MouseUp和隧道事件PrevieMouseUp。

WPF事件

WPF最重要的5类事件:

  1. **生命周期事件:**在元素被初始化、加载或卸载时发生这些事件。
  2. **鼠标事件:**操作鼠标时发生的事件。
  3. **键盘事件:**操作键盘时发生的事件。
  4. **手写笔事件:**操作手写笔时发生的事件。
  5. 多点触控事件: 操作触摸屏时发生的事件。

生命周期事件

在这里插入图片描述
在这里插入图片描述

鼠标事件

获取鼠标Move事件的鼠标坐标信息:

       private void Window_MouseMove(object sender, MouseEventArgs e){Point pt = e.GetPosition(this);Console.WriteLine($"Window_MouseMove {pt.X}, {pt.Y}");}

在这里插入图片描述

 private void Window_MouseUp(object sender, MouseButtonEventArgs e){Console.WriteLine("Window_MouseUp");}private void Window_MouseDown(object sender, MouseButtonEventArgs e){Console.WriteLine("Window_MouseDown");}private void Window_MouseEnter(object sender, MouseEventArgs e){Console.WriteLine("Window_MouseEnter");}private void Window_MouseLeave(object sender, MouseEventArgs e){Console.WriteLine("Window_MouseLeave");}private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e){Console.WriteLine("Window_MouseDoubleClick");}private void Window_MouseMove(object sender, MouseEventArgs e){Point pt = e.GetPosition(this);Console.WriteLine($"Window_MouseMove {pt.X}, {pt.Y}");}
  • 鼠标捕获
    在这里插入图片描述

  • 鼠标拖放
    在这里插入图片描述

键盘事件

在这里插入图片描述

<Grid Button.Click="Grid_Click" KeyDown="Grid_KeyDown"><StackPanel><Button Name="btn1" Width="20" Height="30" Margin="10" Click="btn1_Click">OK</Button><TextBox TextInput="TextBox_TextInput"></TextBox></StackPanel>
</Grid>private void Grid_KeyDown(object sender, KeyEventArgs e){Console.WriteLine($"{e.Key.ToString()}");}private void TextBox_TextInput(object sender, TextCompositionEventArgs e){Console.WriteLine($"{e.Text}");}

KeyboardDevice属性提供的方法:
在这里插入图片描述

多点触控输入

在这里插入图片描述

原始触控

在这里插入图片描述

http://www.yayakq.cn/news/72071/

相关文章:

  • 公司网站发布流程全网精选小程序
  • 响应式企业网站制作网页时首先要确定什么
  • 太仓建设网站企业名录2022版
  • 手机网站改版seo优化专员招聘
  • 青岛网站推广怎么选安庆做网站电话
  • 大气的企业网站模板怎么百度推广
  • 企业网络营销企业网站建设章节习题静安网站建设关键词优化seo
  • 网站使用授权书可以做网站的服务器
  • 网站备案成功后网页设计人员招聘
  • 手机网站关键词快速排名网络公司网站首页
  • 小型网站建设费用浙江电信关于网站备案信息核实的公告
  • 淘宝网店网站建设目的网站建设中 html免费
  • 云南省住房与城乡建设厅网站深圳到北京
  • 个人网站做淘客哪个网站可以做平面兼职
  • 佛山网站建设咨询庆阳市建设局网站
  • 网站导航栏代码做公司网站公司多少钱
  • 网站设计公司 广州网页用什么软件做
  • 有没有做策划案例的网站企业网站如何建立
  • 关于做ppt的网站有哪些内容深圳门户网站制作
  • 网站开发大作业安庆网站建设服务网
  • 网站设计品参考消息电子版在线阅读
  • 网站建设中敬请期待 图片动易网站怎么进入后台
  • python做网站好不好云服务器建设简易网站
  • 北京网站策划服务自己做的网站有排名吗
  • 常州市建设银行网站seo排名优化是什么意思
  • 建立网站需要做什么装修设计用什么软件
  • 开原网站制作公司如何做网站301重定向
  • 合肥的网站建设公司做视频网站犯法吗
  • 合同 制作 网站网页设计快速培训
  • 做外贸必应网站产品曝光太仓市住房和城乡建设局网站