wpf给模板控件添加事件一
假如我们自定义了一个控件模板,里面有一个Slider控件,如何给它添加事件呢?
<Style TargetType="{x:Type s:ZoomBox}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type s:ZoomBox}"><Border CornerRadius="1"BorderThickness="0"Background="#EEE"BorderBrush="DimGray"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><Slider Name="PART_ZoomSlider"VerticalAlignment="Center"HorizontalAlignment="Center"Margin="0"Ticks="25,50,75,100,125,150,175,200,225,250"Minimum="25"Maximum="250"SmallChange="25"LargeChange="25"Value="100"MinWidth="104"MinHeight="21"IsSnapToTickEnabled="True"IsMoveToPointEnabled="False" /><TextBlock Text="{Binding ElementName=PART_ZoomSlider, Path=Value}"Grid.Column="1"VerticalAlignment="Center"HorizontalAlignment="Right"Margin="0,0,14,0" /><TextBlock Text="%"Grid.Column="1"VerticalAlignment="Center"HorizontalAlignment="Right"Margin="1,0,2,0" /></Grid></Border></ControlTemplate></Setter.Value></Setter></Style>
这里要使用OnApplyTemplate方法,在该方法中找到Slider控件。
具体的,在自定义的ZoomBox类中,重写该方法,同时,在模板中,Slider的命名一定要是PART_Name形式,这样WPF就可以找到该控件,然后添加事件委托。
public Class ZoomBox
{
private Slider zoomSlider ;//slider成员变量public override void OnApplyTemplate(){base.OnApplyTemplate();#region 搜索控件的模板元素this.zoomSlider = Template.FindName("PART_ZoomSlider", this) as Slider;this.zoomSlider.MouseWheel+= new MouseWheelEventHandler(this.Cus_MouseWheel);if (this.zoomSlider == null)throw new Exception("PART_ZoomSlider template is missing!");#endregionthis.zoomSlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(this.ZoomSlider_ValueChanged);}}
wpf给模板控件添加事件一相关推荐
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是行不 通.如果大家开发的是WinForm中的事件,之前的定义可能没有什 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.N ...
- js动态添加控件服务器响应,JS实现动态给标签控件添加事件的方法示例
本文实例讲述了JS实现动态给标签控件添加事件的方法.分享给大家供大家参考,具体如下: /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans ...
- GMap.NET入门详细教程【4】--------为控件添加事件,在鼠标单击时打点
GMap.NET入门 下载 GMap.NET,并在VS中添加GMap.NET控件 初始化并加载一张地图 添加标记点.线.多边形 为控件添加事件,在鼠标单击时打点 快捷添加 选中窗体中的GMap控件,并 ...
- C#中为控件添加事件时提示“ dataGridView1_CellValidating”没有与委托“DataGridViewCellEventHandler”匹配的重载
遇到的问题描述: 在xxx.designer.cs和xxx.cs中分别手动添加了函数和其定义,注意,是我自己一个一个敲代码敲进去的.结果编译时就没通过,提示问题如下: 在网上搜了一大圈,都找不到符合我 ...
- android listview和simpleadapter 给itme 中的控件添加事件
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() { @Override public boolean setViewValue(V ...
- WPF对某控件添加右键属性
代码创建右键属性 ContextMenu cm = new ContextMenu();MenuItem mi = new MenuItem();mi.Header = "打开此文件所有文件 ...
- 自动为DEV GridView控件添加SizeChanged事件
实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根 ...
- 金蝶EAS DEP脚本(5)给常用控件添加值改变事件
给常用控件添加事件 一.F7 给F7添加值改变事件 //F7控件增加值改变监听 pluginCtx.getKDBizPromptBox("prmtCompany").addData ...
- 在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...
最新文章
- 用C#开发网络防火墙技术分析
- Android消息通信之无所不能的第三方开源项目EventBus
- Python编程基础:第十节 while循环While Loops
- 函授计算机与科学论文,函授计算机科学与技术论文
- 【笔记】opencv的python实现·像素处理 像素访问 alpha通道
- OpenCV F变换理论F-transform theory
- 单位脉冲信号与单位冲激信号的区别
- vue项目 一行js代码搞定点击图片放大缩小
- Struts2_4_ActionMap与ValueStack详解_Struct2的EL及常用标签_防止表单数据重复提交
- C++工作笔记-枚举类型的作用
- ndroid中View.inflate()
- 控制工程基础Chapter2 Mathematical models of systems
- html5a链接_html 超链接(a)详细讲解
- 【美化】小米平板IOS主题
- Mac Navicat Premium 12.1.13 破解版本下载
- linux切换声卡,Ubuntu中双声卡使用实例
- Android bootchart 工具使用
- WRF实例运行系列(1)
- python声音可视化_声音的可视化处理
- 轻松理解skip-gram模型