关于C# Revit二次开发WPF窗口不重复打开

WPF的学习和使用二:WPFRevit 的进阶交互 WPFRevit 的进阶交互 阅读详情

1.只有在revit中使用UI按钮的情况下

在这里插入图片描述
new一个窗口出来的时候判断是否存在,如果存在了,再点击的时候,就用IsVisible判断,则不让第二次点击的窗口创建。
注:需要窗口是静态的
在这里插入图片描述

2.此时会有一个问题

这样能实现点击同一个按钮时,第二次点击无效,即不弹出俩个一样的窗口。但是在关闭了窗口时报错:关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。”

这个时候需要用到重写onclosing方法:

	 /// <summary>
    /// 重写OnClosing事件 解决窗口关闭不能再开的bug。
    /// </summary>
    /// <param name="e"></param>
    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        this.Hide();
        e.Cancel = true;
    }

或者:
在这里插入图片描述
在这里插入图片描述
加个事件就能完成效果了!

Revit二次开发WPF界面,求大神指导 在VS2015平台写了一个解决方案,目录树如下,这个项目是要实现读取本地EXCEL中的两列数据,作为共享参数导入到REVIT 打开的RFA模型(ImportInstance)。// 创建一个ExcelPackage对象,加载工作簿。//创建一个字典来存储第二列和第三列的对应关系。//读取第二例和第三列的数据。// 构造方法,传入当前 Revit 文档。//从Excel数据中导入参数到Revit。// 导入共享参数到 Revit。// //Excel文件的路径。// 获取或创建参数组。 阅读详情

相关推荐

Revit插件开发实战:利用C#实现高效热重载与动态调试

本文详细介绍了如何利用C#和VS2022的热重载功能优化Revit插件开发流程,实现高效动态调试。通过环境配置、动态加载技术集成和实战案例演示,帮助开发者大幅提升Revit2022二次开发效率,减少重复重启的繁琐操作。

weixin_28837817的博客 647

Revit学习笔记004--极客BIMRevit二次开发方法收集

Revit API 开发(13): Revit API 文件打开、关闭和保存操作_极客BIM工作室-CSDN博客_rvt文件 Revit API:Events 事件总览_极客BIM工作室-CSDN博客

jet_sean的博客 536

Revit二次开发 防止弹窗

使用Revit二次开发,commandData.Application.OpenAndActivateDocument打开文件时,revit可能会弹出找到参照等提示框,此资源可避免提示框的弹出

Revit二次开发打短管(WPF

【代码】Revit二次开发打短管(WPF

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 435

Revit二次开发 屏蔽复制构件产生的重复类型提示窗

做了很久码农,也没个写博客的习惯,这次开始第一次写博客。 这个问题也是折腾了我接近一天时间,网上也没有任何的相关博文,于是决定分享一下,以供同样拥有此问题的小伙伴们参考。 内容源于目前在做的一个项目,已经封好的功能里,在生成构件时,会产生以 下弹窗。 原以为是前辈留下的信息提示,没想到是revit自带的信息提示,起因是在搜索构件时会查找当前文档的构件,查找到之后...

anyueyanzheng22036的博客 976

winform showdialog窗体关闭后 存在_【RevitAPI】设置模态窗体的父窗体

平台:Visual Studio 2019语言:C#框架:.Net Framework 4.7软件:Revit 2020系统:Win10 x64为插件设计了WPF窗口显示“关于”信息,实现过程为:点击Revit选项卡按钮弹窗显示相关信息为了能根据Revit窗体位置确定弹窗位置,优化Revit和自定义窗体的交互,需要将Revit设置为自定义窗体的父窗体。[Autodesk.Revit.At...

weixin_39559750的博客 295

在 Visual Studio 中创建项目和项模板(Revit API+WPF 系列 1/3)

在这个由三部分组成的系列中,我将讨论如何使用 C# .NET 在 Revit API 插件中正确集成 Windows Presentation Foundation (WPF)。 对于第一部分,我们将讨论创建项目和项模板,我们将使用这些模板创建具有 WPF 功能的新项目。然而,对于项目模板,目标是能够创建插件可执行类,而无需重复创建与您的编码工作流相同的行。 创建项目模板 Visual Studio 提供我们可以用于 WOF-ed 插件的类库项目模板。所以我们需要创建它。我们将开始从 WPF .

weixin_47015373的博客 984

基于AI与规则引擎的Revit参数全生命周期自动化管理方案

在建筑信息模型(BIM)与计算机辅助设计(CAD)领域,参数化设计是定义和管理构件属性的核心技术。其原理是通过预定义的参数规则驱动模型生成与修改,从而提升设计的一致性与效率。这项技术的核心价值在于将设计意图数据化,是实现设计自动化、智能校验与高效协同的基础。在BIM软件如Revit中,参数管理直接影响模型质量与下游应用。传统手动管理方式在大型项目中面临效率低下与易出错等挑战。本文聚焦于**参数自动化管理**与**AI预测**,探讨如何结合规则引擎与机器学习技术,构建一个覆盖参数创建、智能赋值、联动更新与合规

weixin_29029995的博客 331

WPF 判断窗体的启动是否是使用 .show 或者 .showdialog

if (this.IsModal()) //判断该登录窗是从什么地方启动的,,返回true --则是由mainwindow调用的,返回false则是作为启动窗体启动的 DialogResult = true; else { ...

zxcvb036的博客 2261

wpf判断一个窗体是否运行_算法8 判断一个数是否是回文数

问题描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数,正着念和反着念都一样,例如:“上海自来水来自海上”。示例 1:输入: 123454321输出: true示例 2:输入: -545输出: false解释: 从左向右读, 为 -545 。从右向左读, 为 545- 。因此它一个回文数。示例 3:输入: 10输出: false解释: 从右向...

weixin_39966922的博客 243

wpf判断一个窗体是否运行_如何判断一个区块链项目是否优质?

其实这个话题我一直很想给大家讲讲,很多人总是在刚踏入区块链的时候交了学费,包括我也一样,无论何时,灰色总是无法抹掉。那么如何避免踩坑,让自己的判断力更强呢?今天我为大家分享一下我的判断方式。区块链发展至今,各类生态断爆发,当然也随着大家的断深入,可以发现一般项目需要具备四大要素:白皮书、网站、开源代码、审计报告。相信有的人会立马跳出来反驳,表示自己入场的是一个拥有完整要素的项目,到最后却被“割...

weixin_39525118的博客 174

Revit 二次开发添加WPF窗口的办法

1、新建WPF用户控件; 2、修改XMAL,将UserControl改为Window; 3、并在后台代码中,将类的基类改为Window; 4、d:DesignHeight和d:DesignWidth改为Height和Width。 ...

硬核小青年的博客 2454

wpf 判断项目中的某个窗体是否已经打开或者已经存在

foreach (Window item in Application.Current.Windows) { if (item is window1) return; } 转载于:https://www.cnblogs.com/ykgbk/p/10825723.html

weixin_30362801的博客 6019

Revit二次开发建立程序:在类库中添加WPF

在类库中建立WPF

一个Revit二次开发的实习生 3398

Revit二次开发第一回:主程序与WPF窗口之间的参数传递

假设主程序中有3个参数需要传入WPF窗口,可以通过构造函数的形式(Revit二开中常以MainWindow为切入口)传入, 具体应做如下操作: class Program     {         static void Main(string[] args)         {             //以下为3个等待传入MainWindow的参数列表            

niaxiapia的博客 2585

revit二次开发之在wpf上展示revit模型

一、背景 小伙伴们在revit二次开发时,可能会需要在wpf上展示revit模型,那么如何实现呢? 二、思路 笔者为此录制了一个教学视频,通俗易懂,大家直接看就行了 地址:https://www.bilibili.com/video/av80069636 如果链接失效,直接在b站搜索:面向工程人员的Revit二次开发09_WPF的使用 三、注意事项 1.我是黑夜の骑士,欢迎大家关注我的博客,笔...

黑夜の骑士的博客 2645

Revit二次开发WPF面板Owner设置为Revit窗体

Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,TopMost的窗口没有随着Revit最小化,而是孤零零的显示在屏幕上并且遮挡了 其他窗口。其实只需要将Revit的窗体设置为弹出窗体的Ower就可以了,这样也需要设置topmost。代码亲测可以使用。 //实例WPF窗体 WindowsIcon win=new WindowsIcon(); ...

qq_40098572的博客 720

C# Revit二次开发 WPF界面,动态(界面初始化时)在viewmodel中向tabcontral添加tabitem,并添加控件, 读取数据

MainWindow.xaml.cs中。MainWindow.xaml中。MainViewModel中。

wula1994的博客 560
上一篇: 关于Spring里的版本冲突
下一篇: 一个一年工作经验的菜鸡程序员的一年总结
Terrierman
博客等级 码龄6年 2粉丝 5原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值