热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

wpf,后台触发按钮点击以及拖动

触发按钮ClickMouseButtonEventArgsargsnewMouseButtonEventArgs(Mouse.PrimaryDevic
触发按钮Click                  
MouseButtonEventArgs args
= new MouseButtonEventArgs(Mouse.PrimaryDevice,
0, MouseButton.Left);
args.RoutedEvent
= Button.ClickEvent;
btnOkCommand.RaiseEvent(args);

触发按钮绑定的Command
需要添加UIAutomationProvider 引用
ButtonAutomationPeer bam
= new ButtonAutomationPeer(btnOkCommand);
IInvokeProvider iip
= bam.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
iip.Invoke();

 

关于拖动

  //WPF设计上的问题,Button.Clicked事件Supress掉了Mouse.MouseLeftButtonDown附加事件等.
//不加这个Button、TextBox等无法拖动
if (uiEle is Button||uiEle is TextBox)
{
uiEle.AddHandler(Button.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(Element_MouseLeftButtonDown), true);
uiEle.AddHandler(Button.MouseMoveEvent,
new MouseEventHandler(Element_MouseMove),true);
uiEle.AddHandler(Button.MouseLeftButtonUpEvent,
new MouseButtonEventHandler(Element_MouseLeftButtonUp), true);
continue;
}
//
uiEle.MouseMove += new MouseEventHandler(Element_MouseMove);
uiEle.MouseLeftButtonDown
+= new MouseButtonEventHandler(Element_MouseLeftButtonDown);
uiEle.MouseLeftButtonUp
+= new MouseButtonEventHandler(Element_MouseLeftButtonUp);

 

 

WPF利用代码触发按钮点击操作

WPF拖动总结

 

 

 

 

 

这篇博文总结下WPF中的拖动,文章内容主要包括:

1.拖动窗口

2.拖动控件 Using Visual Studio

  2.1thumb控件

  2.2Drag、Drop(不连续,没有中间动画)

  2.3拖动一个控件

  2.4让一个窗口内的所有(指定的)控件可拖动

3.Expression Blend X实现拖动(Best Practice)

Update: Move and resize controls on a form at runtime (with drag and drop)

小结

1.拖动窗口                        

我们知道,鼠标放在窗口的标题栏上按下就可以拖动窗体。我们要实现在窗口的全部地方或特定地方按下鼠标左键实现拖动。

Winform的做法是,获取鼠标的位置信息,从而设置窗体的位置。

WPF也可以采用Winform类似的方法,但是没有必要,因为有更加单的方法。



推荐阅读
author-avatar
Cika_用假名说真话
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有