如何解决使用“优化以获得最佳外观”显示模式时,如何防止 PowerPoint 更改我的表单位置和大小
为了演示我的问题,我准备了以下代码和一些屏幕截图。
更新: 我注意到只有当用户选择 PowerPoint 显示设置“优化以获得最佳外观”时才会出现此问题。使用“优化兼容性”时,表单位置和大小是正确的。因此,我要重新表述我的问题。
问题:
- 我想在某些 PowerPoint 的位置和大小处显示 Winform 形状。如果这是在同一台显示器上完成的,这将按预期工作(125% dpi 缩放) 那个 PowerPoint 开始了。如果我将 PowerPoint 窗口移动到我的 辅助屏幕(200% dpi 缩放)它在辅助屏幕上的某些地方(!)不起作用 监控。
问题:
- 在我发现此行为仅发生在“优化 最佳外观”模式,我改写的问题是:我怎样才能防止 PowerPoint 使用时更改我的表单位置和大小 “优化以获得最佳外观”显示模式?
Private Sub Button4_Click(sender As Object,e As RibbonControlEventArgs) Handles Button4.Click
Dim someShape As PowerPoint.Shape = Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange(1)
Dim pointRect As RectangleF = New RectangleF()
pointRect.X = someShape.Left
pointRect.Y = someShape.Top
pointRect.Width = someShape.Width
pointRect.Height = someShape.Height
Dim x1 As Integer = Globals.ThisAddIn.Application.ActiveWindow.PointsToScreenPixelsX(pointRect.X)
Dim y1 As Integer = Globals.ThisAddIn.Application.ActiveWindow.PointsToScreenPixelsY(pointRect.Y)
Dim x2 As Integer = Globals.ThisAddIn.Application.ActiveWindow.PointsToScreenPixelsX(pointRect.X + pointRect.Width)
Dim y2 As Integer = Globals.ThisAddIn.Application.ActiveWindow.PointsToScreenPixelsY(pointRect.Y + pointRect.Height)
Dim pixelRect As Rectangle = New Rectangle(x1,y1,x2 - x1,y2 - y1)
Dim testFrm As testForm = New testForm()
testFrm.StartPosition = FormStartPosition.Manual
testFrm.Location = pixelRect.Location
testFrm.Size = pixelRect.Size
testFrm.Show()
End Sub
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。