关于wpf路由事件的handled属性

问题描述

privatevoidTextBox_PreviewTextInput(objectsender,TextCompositionEventArgse){shortval;if(!Int16.TryParse(e.Text,outval)){e.Handled=true;}}小弟最近学习wpf看到这段路由事件,书上说Handled属性用来终止路由事件传播,可是这个方法为什么能阻止非数字的字符录入呢

解决方案

解决方案二:
if(!Int16.TryParse(e.Text,outval))TryParse这个方法验证e.Text能否转换为Int。如果不能,则终止路由事件传播。
解决方案三:
那么为什么终止路由事件传播会阻止字符在textbox中显示呢难道显示字符是写在路由事件里面的?
解决方案四:
引用1楼guwei4037的回复:

if(!Int16.TryParse(e.Text,outval))TryParse这个方法验证e.Text能否转换为Int。如果不能,则终止路由事件传播。

为什么终止传播会不显示字符呢?显示过程跟事件有什么关系吗

时间: 2024-11-03 18:48:37

关于wpf路由事件的handled属性的相关文章

asp.net事件传递及wpf路由代理实例

asp.net事件传递及wpf路由代理实例 asp.net,事件传递,wpf路由 事件,传递 一篇关于.net事件传递及wpf路由代理实例程序代码,作者写得非常的详细,有需要了解事件传递及wpf路由代理的朋友不防进入参考参考. 这几天做的wpf项目,涉及到弹出窗口更新父级ui,同时弹出窗口需要处理一定的逻辑后调用父级窗口的函数继续执行. 这里就用到了.net事件传递.ui事件更新.wpf的路由事件. 1.什么是.net事件传递(事件链) 在.NET程序设计时,常常将一些辅助类的事件封装绑定到一个

重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 控件基础 DependencyProperty - 依赖属性 AttachedProperty - 附加属性 控件的继

代码-新手求问wpf程序中关于路由事件的问题

问题描述 新手求问wpf程序中关于路由事件的问题 我放了两个Button控件 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Grid1.AddHandler(Button.ClickEvent,new RoutedEventHandler(onClick)); } public void onClick(object sender, RoutedEventArgs e

WPF,自定义的路由事件为什么不冒泡

问题描述 项目中创建了一个继承自Control的自定义控件,名为"MyControl",并且创建了一个依赖项属性Value和一个冒泡路由事件ValueChanged事件.下面是使用MyControl的结构:<Gridlocal:MyControl.ValueChanged="grid_ValueChanged"><local:MyControl/><local:MyControl/><local:MyControl/>

学习WPF——了解路由事件

入门 我们先来看一个例子 前台代码: 后台代码: 点击按钮的运行效果第一个弹出窗口 第二个弹出窗口: 第三个弹出窗口: 说明 当点击按钮之后,先触发按钮的click事件,再上查找,发现stackpanel也注册了该事件,那么接着触发StackPanel的Button.Click事件,依次再触发Grid的Button.Click事件,这就是最基本的事件路由,事件路由的策略是右内向外的 如果不希望在XAML中注册路由事件,那么也可以通过编码的方式注册路由事件如下所示 如果想终止事件的向上传递,可以使

Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】

Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件. 一.细解冒泡路由事件 冒泡路由事件可以比喻为:一个父对象X包含子对象A,在子对象A中没有事件处理程序,但是父对象X中有一个鼠标左击事件处理程序.当用户点击子孙对象A时,这个事件又鼠标左击冒泡传递到父对象X.父对象的事件处理程序就处理这次点击事件. 总结出来就是:冒泡路由事件是从子孙的元素传递到父对象事件处理程序中进行处理的一种解决方案,直到这个

.NET简谈路由事件

本篇文章讲解关于路由事件的相关原理. 什么叫路由事件,字面理解就是事件是可以传递,路由的意思也好理解.路由事件其实就是,事件是会随着某种变化,来回传递.路由事件其实在.NET2.0时期就已经存在了,只不过在一般开发过程中用不到. 从C#3.0开始,就已经封装了关于路由事件的机制.其实这种实现应该可以换个名字来解释.我们可以给路由事件起个便于理解的名字,"事件的路由设计模式".我们都知道,任何大的框架都是从微小的基本语法开始编写的,平台.语言给我们提供的仅仅是一些能满足日常需求的东西:好

WPF 字体、颜色等属性的序列化和反序列化

WPF自带的一些属性比如System.Windows.Media.Brush.System.Windows.Media.FontFamily.System.Windows.FontWeight等不具有直接序列化能力,本文针对这一点设计名为PropertySerializateDictionary的类,实现了不同类不同对象公有属性的序列化和反序列化.本类继承于Dictionary<string, TypeAndValue>, IXmlSerializable,调用了自实现类TypeAndValu

wpf-请教如何在WPF后台修改Grid.ColumnSpan属性?

问题描述 请教如何在WPF后台修改Grid.ColumnSpan属性? 20C 我在grid里平均上下左右分了四个区域,现在想实现点击界面某个button,指定的一个区域充满整个grid,即其他三个区域属性为不可见.比如第一个区域初始位置是Grid.Row=""0"" Grid.Column=""0"", 点击按钮后如果修改为 Grid.Row=""0"" Grid.Column=&qu