c# - C# 使用 ShowDialog 方法显示另一个表单时保持表单可拖动
问题描述
我有三个项目(proj1、proj2、pro3)。proj1(winforms)是我集成其他项目的地方。proj2(在 wpf 中,我认为对这个问题并不重要)有一个类似于通知菜单的窗口,我希望它始终位于顶部并且可以拖动。proj3(也是wpf)有一些与所有者关系的窗口。
项目1:
public FormGeral()
{
InitializeComponent();
StartMenu();
}
private void StartMenu()
{
var wpfwindow = new Proj2.WindowController(this.pProperties, true);
ElementHost.EnableModelessKeyboardInterop(wpfwindow);
wpfwindow.Closed += wpfwindow_Closed;
this.Activate();
}
private void buttonX_Click(object sender, EventArgs e)
{
var wpfwindow = new Proj3.WindowInvoices(this.pProperties);
ElementHost.EnableModelessKeyboardInterop(wpfwindow);
wpfwindow.Show();
wpfwindow.Closed += wpfwindow_Closed;
}
在 proj3 中,WindowInvoices 有一个这样的按钮:
private void ButtonAddInvoice_Click(object sender, RoutedEventArgs e)
{
WindowAddEditInvoice window = new WindowAddEditInvoice(this.PProperties, idModulo, null, true, null);
window.Owner = this;
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
window.ShowDialog();
}
当我第一次单击在 Proj3 上打开 WindowInvoices 时,Proj2 上的菜单运行良好,位于顶部且可拖动。但是当我在 Proj3 上打开 WindowAddEditInvoice 时,Proj2 上的菜单窗口不可拖动。注意使用 Show 或 ShowDialog 方法。
实现此行为的最佳方法是什么?
解决方案
推荐阅读
- pyspark - 使用完整的成对观察Pyspark计算存在缺失值时的相关矩阵
- javascript - 函数显示无效并且由于未知原因无法运行
- linux-kernel - Linux 内核无法在 JTAG 调试器下启动
- wpf - 如何从 Prism 中的 RequestNavigate 方法获取回调?
- python-requests - WooCommerce API 通过请求使用环回代理
- ruby-on-rails - Rails 6:从表单输入动态创建/切换/迁移数据库
- pandas - 从具有不同对象的列中,我希望每个对象都有很多列,带有熊猫
- javascript - 将数据属性从 Shopify Schema 块传递到 JS
- pandas - Pandas:从最后一行开始,按升序,删除所有满足多列条件的行
- javascript - Iframe 中的 SharedArrayBuffer