WPF 早APP.xaml中的style中的按钮事件怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 早APP.xaml中的style中的按钮事件怎么写相关的知识,希望对你有一定的参考价值。
为了能再自定义控件用使用,我把选项卡的样式写在APP.xaml中,由此出现的问题是在模板中的按钮事件不好写了……
贴代码字数超了……大家意会一下吧
图上 1是网上看的要写command 没看明白 也没成功,2是默认的方法 EventSetter 不过 运行报错了
这个style的目的是让Tab控件有个关闭按钮,现在要实现这个按钮的事件,如图
貌似只有通过Command来绑定了 但是 我不会
自己写一个委托 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
class DelegateCommand : ICommand
public bool CanExecute(object parameter)
if (this.CanExecuteFunc == null)
return true;
return this.CanExecuteFunc(parameter);
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
if (this.ExecuteAction == null)
return;
this.ExecuteAction(parameter);
/// <summary>
/// 委托方法的实现
/// </summary>
public Action<object> ExecuteAction get; set;
public Func<object, bool> CanExecuteFunc get; set;
public DelegateCommand AddCommand get; set; ///定义委托
private void FuncName(object parameter) ///委托要执行的方法
//具体要做什么的代码。
public DelegateCommand()
this.AddCommand = new DelegateCommand();
this.AddCommand.ExecuteAction = new Action<object>(this.Add);
最后只需要在你的xaml的cs代码中添加:
this.DataContext = new DelegateCommand();
这样就可以在你的前台的command处绑定AddCommand了啊
希望对你有用!!!追问
this.AddCommand.ExecuteAction = new Action(this.Add);
是什么意思 this下面有ADD吗?
哦 这里的add()方法指的就是代码中的FuncName()的那个方法 ,add只是一个例子而已
参考技术A command 是MVVM模式下用来做前台显示和后台逻辑分离的东东。在vm层编写逻辑,在view层通过绑定,传参数(cmmandParameter)给vm层来完成逻辑实现。这里,需要更正的一个问题是,UserControl的样式应该是写在UserControl的Resource里的,而不是写在app里的 。
改变Template里的控件属性,一般用Triggers就可以实现。EventTrigger你可以在网上查阅下资料,看下如何使用。追问
新手,小白,第一次用WPF,各种东西还不清楚,但是写在哪里不是关键,我写的是选项卡的样式,自带的太丑了,我自己定义了样式以及模板,加上了关闭按钮如图
现在是要给这个按钮加事件,Trigger肯定是不行的,目前看来 就是要用command,但是 我不会用,求具体的用法
那我可以跟你说trigger肯定行,你只是不会用。Command只会出现在MVVM模式下,不一定要用的。我写的技术博客里有篇关于TabControl的改造的,你可以看下。应该可以解决你的问题。
http://blog.sina.com.cn/s/blog_7f83849b01015hdg.html
你的代码 关闭按钮直接写的事件,意思是你的样式是在本页的吧,我的样式是公共样式不能按照你的方式实现,另外 你说trigger肯定 行 请付上解决办法…
追答公用的东西不一定都是放在app里的,可以是usercontrol,它可以有其自身的后台。
还有我说的trigger是eventTrigger配合Action或者Behaviour去做,你可以参考下面的链接。
http://www.silverlightchina.net/html/study/WPF/2011/0607/8144.html
和Command有点类似。都是为了实现前台和逻辑的耦合分离的。这部分确实是比较困难。
我个人建议是创建公用的有前后台的UserControl。
以上是关于WPF 早APP.xaml中的style中的按钮事件怎么写的主要内容,如果未能解决你的问题,请参考以下文章
WPF——后台怎么调用App.xaml里的Button样式?