首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取wpf按钮的角坐标

获取WPF按钮的角坐标可以通过以下步骤实现:

  1. 首先,需要获取到按钮的实例对象。可以通过在XAML文件中给按钮设置一个唯一的名称,然后在代码中使用该名称来获取按钮的实例对象。
  2. 通过按钮的实例对象,可以使用TransformToAncestor方法获取按钮相对于其父元素的坐标转换器。
  3. 使用坐标转换器的Transform方法将按钮的坐标转换为屏幕坐标系中的坐标。

下面是一个示例代码,演示如何获取WPF按钮的角坐标:

代码语言:txt
复制
// 假设按钮的名称为btnExample
Button btn = FindName("btnExample") as Button;

if (btn != null)
{
    // 获取按钮相对于其父元素的坐标转换器
    GeneralTransform transform = btn.TransformToAncestor(this);

    // 将按钮的坐标转换为屏幕坐标系中的坐标
    Point topLeft = transform.Transform(new Point(0, 0));
    Point bottomRight = transform.Transform(new Point(btn.ActualWidth, btn.ActualHeight));

    // 输出按钮的角坐标
    Console.WriteLine("按钮的左上角坐标:({0}, {1})", topLeft.X, topLeft.Y);
    Console.WriteLine("按钮的右下角坐标:({0}, {1})", bottomRight.X, bottomRight.Y);
}

在上述示例代码中,我们假设按钮的名称为"btnExample",通过FindName方法获取按钮的实例对象。然后,使用按钮的实例对象调用TransformToAncestor方法获取坐标转换器。最后,使用坐标转换器的Transform方法将按钮的坐标转换为屏幕坐标系中的坐标,并输出按钮的左上角和右下角坐标。

请注意,上述示例代码中的this表示按钮的父元素,可以根据实际情况进行替换。另外,该示例代码仅供参考,具体实现可能会因为项目结构和需求的不同而有所变化。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。这些产品提供了可靠的云计算基础设施和数据库服务,适用于各种规模的应用和业务场景。您可以通过以下链接了解更多信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WPF 已知问题 开启 WM_Pointer 消息之后 获取副屏触摸数据坐标偏移

    GetIntermediateTouchPoints 方法获取触摸点时,将会发现所获取触摸点坐标是偏,偏坐标差值刚好是整个屏幕距离 此问题由 少珺 小伙伴发现且修复,我只是代为记录工具人 此问题已经报告给...通过 GetStylusPoint 或 GetIntermediateTouchPoints 等方法获取触摸点信息时,可以看到触摸点信息存在偏差,偏差坐标差值刚好是整个屏幕距离,也就是差了 N 个屏幕距离...且所偏差坐标差值刚好是整个屏幕距离,如果刚好你两个屏幕虚拟尺寸(非物理尺寸)是一样大,那这个偏差就更好看出来了,如下图 问题原因: 此问题是在 WPF 框架中 HwndPointerInputProvider.cs...在 HwndPointerInputProvider GetOriginOffsetsLogical 方法里面,没有考虑多屏幕坐标系问题,只是计算了当前窗口所在屏幕坐标,没有考虑应该计算整个大虚拟屏幕坐标...再经过 _currentTabletDevice.DeviceInfo.DisplayRect 属性获取当前窗口所在屏幕虚拟屏幕坐标,将上一步计算到窗口相对于屏幕坐标减去当前屏幕虚拟坐标才是计算到正确坐标

    30010

    WPF 获取应用所有窗口

    本文告诉大家如何获取应用内所有窗口,无论这些窗口有没显示 在 WPF 可以通过 Application.Current.Windows 列举应用所有窗口 foreach(Window window...in Application.Current.Windows ) { Console.WriteLine(window.Title); } 如果需要获取一个线程窗口,请看代码...一个空 WPF 程序有多少个窗口 WPF 内部5个窗口之 MediaContextNotificationWindow ---- 本文会经常更新,请阅读原文: https://...8F%A3.html ,以避免陈旧错误知识误导,同时有更好阅读体验。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

    2.1K30

    win10 uwp 获取窗口坐标和宽度高度 获取可视范围获取当前窗口坐标和宽度高度获取最前窗口范围

    本文告诉大家几个方法在 UWP 获取窗口坐标和宽度高度 获取可视范围 获取窗口可视大小 Windows.UI.ViewManagement.ApplicationView.GetForCurrentView...().VisibleBounds 获取当前窗口坐标和宽度高度 Window.Current.Bounds 获取最前窗口范围 通过 Win32 Api 获取最前窗口范围 IntPtr hWID...E5%8F%A3%E7%9A%84%E5%9D%90%E6%A0%87%E5%92%8C%E5%AE%BD%E5%BA%A6%E9%AB%98%E5%BA%A6.html ,以避免陈旧错误知识误导...,同时有更好阅读体验。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

    3.8K30

    WPF 按钮 Button IsEnabled 属性对 WindowChrome IsHitTestVisibleInChrome 影响

    WPF 里面,默认标题栏交互相对复杂,如按钮没有设置 WindowChrome.IsHitTestVisibleInChrome 属性为 True 那按钮是拿不到点击事件。...本文来告诉大家按钮 Button IsEnabled 属性对 WindowChrome IsHitTestVisibleInChrome 影响 在 WPF默认交互是点击标题栏时候,如果是双击标题栏...而如果在标题栏放一个按钮,此时按钮默认是没有收到点击,详细请看 WPF 非客户区触摸和鼠标点击响应 如果想要让按钮能收到点击,需要使用 WPF 非客户区触摸和鼠标点击响应 方法,让 WPF 按钮加上...此时双击标题栏按钮不会让窗口最大化,但如果此时按钮设置 IsEnabled=”False” 那么此时双击将依然让窗口最大化 而有趣是如果在按钮 A 设置了 WindowChrome.IsHitTestVisibleInChrome...尽管第一个按钮是覆盖整个窗口大小,同时设置了 WindowChrome.IsHitTestVisibleInChrome 属性,但是被第二个按钮覆盖地方,双击标题栏会让窗口全屏 因此在 WPF 中,

    1.6K30

    WPF 应用完全模拟 UWP 标题栏按钮

    WPF 应用完全模拟 UWP 标题栏按钮 发布于 2018-08-04 09:35 更新于 2018-08...由于 Win32 原生方法顶多只支持修改标题栏按钮背景色,而不支持让标题栏按钮全透明,所以我们只能完全由自己来实现这三个按钮功能了。...标题栏四个按钮 一开始我说三个按钮,是因为大家一般都只能看得见三个。但这里说四个按钮,是因为实际实现时候我们是四个按钮。事实上,Windows 原生实现也是四颗按钮。...最小化 还原 最大化 关闭 当窗口最小化时,显示还原、最大化和关闭按钮。当窗口普通显示时,显示最小化、最大化和关闭按钮,这也是我们见最多情况。当窗口最大化时,显示最小化、还原和关闭按钮。...自绘标题栏按钮 标题栏按钮并不单独存在,所以我直接做了一整个窗口样式。使用此窗口样式,窗口能够模拟得跟 UWP 一模一样。 以下是模拟效果: ? ▲ WPF 模拟版本 ?

    2.2K20

    WPF 如何计算矩形内一个坐标相对另一个矩形坐标

    我在 WPF 中拿到一个矩形里面的一个坐标,在这个矩形里面包含了另一个矩形,我想将这个点转换到另一个矩形里面的坐标。...也就是说我拿到一个点,这个点左上角(0,0)坐标就是矩形1左上角坐标,而我想要将这个点转换为以矩形2左上角坐标作为原点坐标坐标 其实做法就是将矩形2左上角坐标换算为以矩形1作为原点坐标,...,相当于将 rect 放入了 originRect 矩形 然后进行矩形内坐标换算,也就是 rect 使用 originRect 左上角作为原点坐标系,此时坐标系和 point 坐标系相同,也就是计算在相同坐标一个点相对于矩形点...那么假设每个矩形都是左上角都是原点只是因为叠加了矩阵变换才到了当前坐标,这样就可以应用矩阵计算 开始之前请先复习一下 WPF 矩阵变换,在 WPF 中变换矩阵时一个 3*3 矩阵,其中最后一列是占坑不开放修改...这里线性部分指的是旋转和缩放 在 WPF 会将元素原来坐标计为 x y 1 最后 1 就是占坑,对元素进行变换就是通过矩阵乘法 | M11 M12 0 | |

    63730

    WPF 如何计算矩形内一个坐标相对另一个矩形坐标

    我在 WPF 中拿到一个矩形里面的一个坐标,在这个矩形里面包含了另一个矩形,我想将这个点转换到另一个矩形里面的坐标。...也就是说我拿到一个点,这个点左上角(0,0)坐标就是矩形1左上角坐标,而我想要将这个点转换为以矩形2左上角坐标作为原点坐标坐标 其实做法就是将矩形2左上角坐标换算为以矩形1作为原点坐标,...那么假设每个矩形都是左上角都是原点只是因为叠加了矩阵变换才到了当前坐标,这样就可以应用矩阵计算 开始之前请先复习一下 WPF 矩阵变换,在 WPF 中变换矩阵时一个 3*3 矩阵,其中最后一列是占坑不开放修改...这里线性部分指的是旋转和缩放 在 WPF 会将元素原来坐标计为 x y 1 最后 1 就是占坑,对元素进行变换就是通过矩阵乘法 | M11 M12 0 | |...通过矩阵计算可以应用到显卡计算加速 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E5%A6%82%E4%BD%95%

    1.1K20
    领券