创建一个非模态模板,做项目常常会用到
//主窗体WPF
public partial class ModelessView : Window
{
//声明
ExecuteEventHandler _executeEventHandler = null;
ExternalEvent _externalEvent = null;
public ModelessView()
{
InitializeComponent();
//注册执行
_executeEventHandler = new ExecuteEventHandler();
_externalEvent = ExternalEvent.Create(_executeEventHandler);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
if (_externalEvent != null)
{
_executeEventHandler.ExecuteAction = new Action<UIApplication>((app) =>
{
Selpipepara(app);//功能需要执行的代码
});
_externalEvent.Raise();
}
}
//IExternalEventHandler
public class ExecuteEventHandler : IExternalEventHandler
{
public Action<UIApplication> ExecuteAction { get; set; }
public void Execute(UIApplication app)
{
if (ExecuteAction != null)
{
try
{
ExecuteAction(app);
}
catch
{ }
}
}
public string GetName()
{
return "ExecuteEventHandler";
}
}
//IExternalCommand
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
// show UI
ModelessView modelessView = new ModelessView();
//窗口一直显示在主程序之前
System.Windows.Interop.WindowInteropHelper mainUI = new System.Windows.Interop.WindowInteropHelper(modelessView);
mainUI.Owner = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
modelessView.Show();
}
Magictools插件下载地址,免费试用
链接:https://pan.baidu.com/s/1qNnagumXlN6yrIBvRr1dNA?pwd=bljw
提取码:bljw