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。

参考技术B 初看你的代码不是很明白,只有截图也不便于大家调试,是否可以把代码发到你的百度空间,附带详细说明你的需求?

以上是关于WPF 早APP.xaml中的style中的按钮事件怎么写的主要内容,如果未能解决你的问题,请参考以下文章

WPF——后台怎么调用App.xaml里的Button样式?

覆盖 WPF 中的主题

WPF App.xaml.cs常用模板,包括:异常捕获,App只能启动一次

[Wpf学习] 1.传说中的Main

Window 的 WPF 全局样式

Prism.WPF -- Prism框架使用(上)