WPF:获取子 UIElement 在其父级中的位置。忽略 RenderTransform(如果有)

2023-12-20

假设我有以下 XAML 代码:

<DockPanel Name="pan">
    <Label Content="AAA" Name="lab1" />
    <Label Content="BBB" Name="lab2" />
    <Label Content="CCC" Name="lab3" />
</DockPanel>

我的代码后面我想找出坐标是什么lab2 within pan. Hovewer我想忽略任何当前的 RenderTransformlab2。因此,解决方案必须为上述代码和以下代码返回相同的坐标:

<DockPanel>
    <Label Content="AAA" />
    <Label Content="BBB" >
        <Label.RenderTransform>
            <TranslateTransform Y="20"/>
        </Label.RenderTransform>
    </Label>
    <Label Content="CCC" />
</DockPanel>

换句话说,我想要由ArrangeOverride的方法pan打电话时Arrange on but2。我将其称为“逻辑位置”。 “视觉位置”可以通过调用以下方法获得:

private Point visualPoss() {
    Point lab2Vis = lab2.PointToScreen(new Point(0, 0));
    Point panVis = pan.PointToScreen(new Point(0, 0));
    return new Point(lab2Vis.X - panVis.X, lab2Vis.Y - panVis.Y);
} 

但这不是我的问题的解决方案,因为它的返回值visualPoss()对于上面的两个 XAML 代码示例来说并不相等。

如果有不清楚的地方,请发表评论。

谢谢


看起来有一个非常简单明了的解决方案:

private Point logicalPoss() {
    Vector vec = VisualTreeHelper.GetOffset(lab2);
    return new Point(vec.X, vec.Y);
}

看起来效果很好。如果您知道该方案何时不起作用,请发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF:获取子 UIElement 在其父级中的位置。忽略 RenderTransform(如果有) 的相关文章

  • 有没有办法使用 .NET 中的 Kafka Ksql Push 查询

    我目前正在 NET 中使用 Kafka 消费者处理大量 Kafka 消息 我的处理过程的第一步是解析 JSON 并根据 JSON 中特定字段的值丢弃许多消息 我不想首先处理 特别是不下载 那些不需要的消息 看起来 kSql 查询 写为推送查
  • 当视图模型类型为包含超过 4 个项目的元组时,Asp.net mvc 2 .net 4.0 出现错误

    当我在 Asp net mvc 2 net 4 0 中使用模型类型 Tuple 创建强类型视图时 当 Tuple 具有超过 4 个项目时 我会收到错误 示例1 视图类型是Tuple
  • ListView.GridViewColumn 对齐中的控制

    我有以下 WPF ListView
  • 是否曾经建议使用 ECB 密码模式?

    判断从这篇关于密码模式的维基百科文章 http en wikipedia org wiki Block cipher modes of operation以及我听说过的有关 ECB 的其他事情 这是一个很大的禁忌 并且可能会泄露有关您的加密
  • 带有嵌入 Flash 视频的 PDF 示例?

    有谁知道我在哪里可以查看嵌入 Flash 视频的 PDF 示例 我知道问这个问题很愚蠢 因为你会认为任何面向技术的用户都应该能够使用谷歌找到一个 但我真的找不到 我的另一个问题是 使用 C 中的 API 将 Flash 视频嵌入 PDF 文
  • 更改实体的可访问性

    我想建立一个内部实体 我已将实体 其标量属性和导航属性更改为内部 当我尝试构建它时出现此错误 错误 6036 EntityType 文件 具有 内部 可访问性 EntitySet 文件 具有具有 公共 可访问性的 get 属性 Entity
  • 从 RichTextBox 复制文本及其格式

    如何将 RichTextBox 中的文本及其格式复制到写字板或网络浏览器 就像复制纯文本一样 您可以使用Clipboard SetText method http msdn microsoft com en us library 6eahs
  • 如何在 Visual Studio 中调试时强制异常?

    我正在调试模式下运行我的应用程序 并且我想手动抛出异常 即不是从代码内部抛出异常 有什么办法可以做到这一点吗 当然 跑步throw new Exception My forced exception 在命令或立即窗口中不起作用 编辑 我希望
  • 如果我使用带有表单身份验证的 WCF,php 或 java 客户端将如何进行身份验证?

    我有一个通用的概念验证 WCF 服务 它使用表单身份验证来保护访问 当我的客户端是 NET 时 一切都很好 vb 代码如下 Dim client As SupplierServiceClient New SupplierServiceCli
  • 如何更改 Settings.settings 值的值

    我有一个简单的控制台应用程序 每天运行 由 Windows 任务计划程序调用 并且取决于每次应用程序运行时递增的值 为了保留这个值 我选择使用 Settings Settings 文件 因此 我有一个名为 RunNumber 和 Scope
  • 使用 HttpClient 从 webapi 消费 xml

    我使用 WebClient 从 Restfull 服务 net web api 获取 Xml 对象 一切都运行良好 using WebClient client new WebClient client Encoding UTF8Encod
  • .Net 6 控制台应用程序:WebApplication.CreateBuilder 与 Host.CreateDefaultBuilder

    我正在研究 NET 6 并希望构建一个简单的控制台应用程序 并进行一些依赖项注入 据我所知 为了使启动 现在只是程序 文件更具可读性 已经做了很多工作 让我有点困惑的是 所有改进似乎都是针对 API 项目中使用的 WebApplicatio
  • WCF获取证书编码值

    我在 WCF 服务中使用证书 因此在 web Config 中有一个编码值
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 更改 WPF 应用程序清单?

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • WPF 从主线程以外的其他线程截屏

    我有一个线程用于侦听 WPF 应用程序的命令 如果 WPF 应用程序收到截取屏幕截图的命令 则任务将移交给 screenshotService 我在互联网上的某个地方找到了一些代码来截取屏幕截图 似乎可以工作 但我还没有想清楚 我无法从另一
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向

随机推荐

  • 使用 Rails 即时生成唯一令牌

    我想在控制器中为 user info token 列中的用户生成令牌 但是 我想检查当前没有用户拥有该令牌 这段代码足够吗 begin new token SecureRandom urlsafe base64 user User find
  • 帮助进行简单的 SQL 查询

    Table A Id Name 1 Apple 2 Mango Table B Id Locale Name In Lang 1 es ES Apple Spanish 1 it IT Apple Italian 2 it IT Mango
  • 如何首先在 EF 4.1 代码中映射父列

    在我的项目中 我有以下 DomainModel public class Login public Guid Id get set public Login CreatedBy get set 我正在使用流畅的配置 如下所示 modelBu
  • 翻转视图动画不起作用

    我正在开发一个 iPad 应用程序 它在视图中向用户提出问题 当他们回答问题时 我希望视图转换到包含下一个问题的另一个视图 为了使它看起来很奇特 我试图向它添加一个卷曲过渡 但我编写的代码不起作用 我看不到找到问题 它确实显示了正确的视图
  • 自动处理供应商前缀的 CSS 框架?

    我查看了 Blueprint Less 和 SCSS 但它们似乎都没有达到我想要的效果 我觉得这很难相信 因为处理供应商前缀是编写 CSS 中最令人沮丧的部分 因此这似乎是任何编写 CSS 框架的人应该解决的第一个问题 我想知道 是否有一个
  • 循环遍历宏 Varargs 值

    如果我定义一些宏 define foo args do something 有没有某种方法可以真正循环args而不是将其传递给另一个函数 就像是 define foo args for int i 0 i lt sizeof args i
  • 使用 Ember.js,如何在渲染视图后运行一些 JS?

    将 Ember 视图插入 DOM 后如何运行函数 这是我的用例 我想使用 jQuery UI sortable 来允许排序 你需要覆盖didInsertElement因为它是 当视图的元素被插入到 DOM 中时调用 重写此函数以执行需要文档
  • Xcode ui 测试:staticTexts 开头

    我想检查我的用户界面上是否存在以前缀开头的元素 如何在 Xcode 7 UI 测试中实现它 app tables AAA staticTexts Fax 0049XXXXXXXX exists 我在 tableview 单元格中有三个元素
  • 相互引用的不可变实例

    有了这些类 有没有可能创建一对男女朋友 也就是说 一个男孩有一个女朋友 而这个男孩也是她的男朋友 abstract class Person val name String case class Girl name2 String val
  • 无法在 Eclipse Juno Mac 中安装新软件

    我是 Eclipse 新手 我正在尝试为其安装 Android ADT 插件 当我转到 帮助 gt 安装新软件 时 出现错误框 无法完成请求 此安装尚未正确配置软件更新 有关详细信息 请参阅错误日志 错误日志 Could not locat
  • 颤振复选框在 StatelessWidget 中不起作用

    这是我的班级 class Home extends StatelessWidget 复选框位于此处 override Widget build BuildContext context return Scaffold body Center
  • 识别已选择 CheckedListBox 项目

    到目前为止我从未处理过checkedListBox1 我想要制作的程序将受益于使用它 而不是必须使用大量复选框 我有代码 private void checkedListBox1 SelectedIndexChanged object se
  • 防止 UIAlertController 关闭

    我想阻止UIAlertController从解雇 我有一个UIAlertAction它只是将一个字符串附加到 UIAlertTextField 中 但是 一旦点击它就会关闭视图控制器 不需要 我尝试添加 NSNotification 但结果
  • 用矩形填充直线多边形[重复]

    这个问题在这里已经有答案了 给定一个完全由矩形创建的多边形 并由点数组定义 其中边始终与轴对齐 I am trying to determine a quick algorithm to find a small number of rec
  • Eclipse 生成包中的所有 getter setter

    有没有办法在 Eclipse 中生成整个包中的所有 getter 和 setter 谢谢 假设您正在使用 Java 您可能想看看龙目岛计划 http projectlombok org
  • 如何从 Google 表单提交触发器功能访问电子表格

    我在 Google Forms 脚本中有一个函数 可以将唯一 ID 添加到要添加到关联工作表的行 该函数在提交表单时触发 这是我一直在使用的脚本的一个版本 function onFormSubmit e Get the active she
  • matplotlib 中每月的大刻度和每周的小刻度

    I have this plot that shows the temperature of every hour for every day of the year 这是我写的代码 mydateparser lambda x dateti
  • 在 Go 中通过嵌入式结构实现 json 编组器

    我有一个结构 我想对其进行有效的 JSON 编码 type MyStruct struct Meta Contents interface type Meta struct Id int 该结构包含已知形式的元数据和未知形式的内容 内容列表
  • 我们可以在同一个数据中心中拥有仅 cassandra 节点和启用 solr 的节点吗?

    我刚刚开始使用 solr 希望您在下面的场景中提出建议 我们有 2 个数据中心 每个数据中心有 3 个节点 均位于不同的 aws 区域 具有位置优势 我们有一个要求 他们问我是否可以在每个数据中心有 2 个 solr 节点 因此每个数据中心
  • WPF:获取子 UIElement 在其父级中的位置。忽略 RenderTransform(如果有)

    假设我有以下 XAML 代码