有没有办法在事件发生之前执行一段代码?WPF在发生特定事件之前执行一个函数?
示例当我们说Expanded =“OnExpand” 此处OnExpand内的代码发生在Expanded事件发生后。如果我想在此之前执行一段代码,该怎么办?
有没有办法在事件发生之前执行一段代码?WPF在发生特定事件之前执行一个函数?
示例当我们说Expanded =“OnExpand” 此处OnExpand内的代码发生在Expanded事件发生后。如果我想在此之前执行一段代码,该怎么办?
如果你在谈论的扩展控制,你可以继承它,并覆盖IsExpanded属性,调用base.IsExpanded = value;
您可以使用预览活动
一个可能的变通方法不具有PreviewExpanded事件的扩展是处理PreviewMouseDown事件做点击测试,看看它的切换按钮。
或者有可能在所有的不知道延长沿 线的扩展类的东西我没有测试,这是真的作品
public class MyExpander: Expander
{
public event EventHandler<EventArgs> PreviewExpanded;
public void OnPreviewExpanded()
{
PreviewExpanded(this,new EventArgs());
}
public override void OnExpanded()
{
PreviewExpanded()
base.OnExpanded();
}
}
之前提高自己的PreviewExpanded事件如果任何对象,你与工作支持这种行为这将是匹配的“预览”事件。所以,这两个事件是匹配前后的集合。 KeyDown() PreviewKeyDown()
扩展器没有用于扩展的预览事件,如果这是您正在使用的。
有没有更好的方法来做到全球?我不想将所有扩展器控件应用程序全部更改为MyExpander – WhoIsNinja 2011-03-09 16:46:59
可能有一种方法可以利用IsExpanded是DependencyProperty的事实,但现在我不知道如何。 – 2011-03-09 16:54:34
我也是一个新手来.net和WPF。任何指向创建自定义控件并向该类添加事件的指针都将非常有帮助 – WhoIsNinja 2011-03-09 16:58:16