指定位置怎么比对上上呢
时间: 2024-01-18 07:03:24 浏览: 28
如果你想将 WPF 界面显示在 WinForm 界面上的指定位置,需要对两个界面的坐标系进行转换。具体步骤如下:
1. 获取 WinForm 界面和 WPF 界面的句柄。在 WinForm 界面和 WPF 界面的代码中,分别使用 Handle 属性获取窗口的句柄,代码示例:
```
IntPtr winformHandle = this.Handle;
IntPtr wpfHandle = myWpfControl.Handle;
```
其中 myWpfControl 是你创建的 WPF 用户控件或窗口的实例。
2. 获取 WinForm 界面和 WPF 界面的客户区域。在 WinForm 界面和 WPF 界面的代码中,分别使用 ClientRectangle 属性获取客户区域的大小和位置,代码示例:
```
Rectangle winformRect = this.ClientRectangle;
Rectangle wpfRect = myWpfControl.ClientRectangle;
```
其中 myWpfControl 是你创建的 WPF 用户控件或窗口的实例。
3. 将 WPF 界面的客户区域坐标转换为屏幕坐标。使用 PointToScreen 方法将 WPF 界面的客户区域左上角的坐标转换为屏幕坐标,代码示例:
```
Point wpfLocation = myWpfControl.PointToScreen(new Point(0, 0));
```
其中 (0, 0) 是 WPF 界面的客户区域左上角的坐标。
4. 将 WPF 界面的屏幕坐标转换为 WinForm 界面的客户区域坐标。使用 PointToClient 方法将 WPF 界面的屏幕坐标转换为 WinForm 界面的客户区域坐标,代码示例:
```
Point winformLocation = this.PointToClient(wpfLocation);
```
通过以上步骤,你可以将 WPF 界面的位置转换为 WinForm 界面的客户区域坐标,然后将 ElementHost 控件的 Location 设置为该坐标即可将 WPF 界面显示在 WinForm 界面上指定的位置。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)