首页 / 浏览问题 / 三维GIS / 问题详情
在场景窗口中添加透明按钮
28EXP 2018年07月30日

使用产品:SuperMap iDesktop 9D 操作系统:win10 x64

问题详细描述:我遇到了继https://qa.supermap.com/17991?show=17991#q17991该问题之后的一些问题,这个问题里面讲到创建一个新WPF窗体,然后把按钮放到新WPF窗体上即可实现。接着我就按照https://www.xuebuyuan.com/2166220.html这个里面的例子来写代码,里面的引用和创建一个新的WPF窗体都已改好。现在的问题是通过点击场景中的一个测试按钮,调不出来WPF窗体,也就是触发不了鼠标点击那个事件,请问该如何解决?下面代码部分都是在DesktopPlugin.cs中

(以上步骤都是为添加透明按钮做测试准备,我想的是只要WPF窗体能调出来,再改下属性,透明按钮应该就可以实现了)

void MainForm_Loaded(object sender, EventArgs e)
        {
            //此处省略一些代码
            ......
            //在场景中实例化一个test按钮
            Button test = new Button();
            //设置该test按钮属性
            test.Location = new Point(200, 98);
            test.Size = new Size(80, 80);
            test.Click += test_Click;
            //添加该test按钮到场景中
            sceneForm.SceneControl.Controls.Add(test);
        }
void test_Click(object sender, EventArgs e)
        {
            wpf.MainWindow wpfwindow = new wpf.MainWindow();
            wpfwindow.ShowDialog();
        }

WPF窗口和场景按钮如下图:

1个回答

您可以参考下

http://support.supermap.com.cn/product/search.aspx?querystr=wpf

超图代码里的示例,示例中的MyControl就是透明wpf窗体。

5,560EXP 2018年07月30日
老师你好,这两个示例我看了,我做的是桌面端的开发,但是两个示例我没找到我想要的,我主要是想明白怎么在winform中调出wpf窗体,也就是在场景窗口中调出wpf窗体
老师你好,假如我自己单独创建一个form,在form中添加一个按钮来调用WPF窗体,这样是可以的。上次我问另一个老师,她跟我说三维场景窗口可以当做一个form,那么我想既然是一个form,怎么会调不出来WPF窗体呢?
因为scenecontrol强制显示在最上,所以只能通过新建窗口来添加wpf。

就像这个示例一样,这个示例也没有把wpf直接放到场景控件中。
...