【问题标题】:Getting The Location Of A Control Relative To The Entire Screen?获取控件相对于整个屏幕的位置?
【发布时间】:2011-06-27 06:03:15
【问题描述】:

假设我有一个控件,它的位置是相对于它的父级的。如果它多次嵌入并且是主窗体的曾曾孙,我如何确定它在我的整个屏幕上的位置,而不仅仅是它在直接父窗体中的位置?这是为了通过屏幕截图打印特定的控件(因为对于某些控件,DrawToBitmap 无法正常工作)。

【问题讨论】:

    标签: c# winforms controls location


    【解决方案1】:

    您正在寻找PointToScreen method

    Point location = someControl.PointToScreen(Point.Empty);
    

    【讨论】:

    • 请注意,PointToScreen 采用 客户区 坐标,因此例如在表单上使用此代码不会给出正确的结果。
    • @rymdsmurf 不确定我是否理解正确,但如果你在 Form 上使用它(如 myForm.PointToScreen)并且你有正确的坐标(来自 control.Location)它会给你屏幕上的正确坐标。
    • 请注意:确保您的屏幕缩放到 100% 以获得正确的值。我的是 125%,我得到了错误的值。
    • 如何考虑缩放?
    • @pookie 你可以得到一个 Graphics 对象 (Dim g As Graphics = CreateGraphics()) 并使用 (g.DpiX / 96) 来获得缩放因子。 100% 为 1,150% 为 1.5。
    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多