首页
学习
活动
专区
圈层
工具
发布

准确判断一个 WPF 控件 UI 元素当前是否显示在屏幕内

各种各样奇怪的因素可能影响你检查此元素是否在屏幕内,本文包你一次性解决,绝对准确判断。...判断 UI 元素的位置,其右侧是否在屏幕最左侧,其底部是否在屏幕最上面;或者其左侧是否在屏幕最右侧,其顶部是否在屏幕最下面。... /// 如果元素在屏幕外面,则返回 true;如果元素在屏幕里或者部分在屏幕里面,则返回 false。...如果用户有多台显示器,而且大小还不一样,那么依前面的判定方法,下图中 C 控件虽然人眼看在屏幕外,但计算所得是在屏幕内。 更复杂的,是多台显示器还不同 DPI 时,等效屏幕尺寸的计算更加复杂。... /// 如果元素在屏幕外面,则返回 true;如果元素在屏幕里或者部分在屏幕里面,则返回 false。

1.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    两个 viewports 的故事-第二部分

    因为网站也需要在移动端显示,所以我们必须让它们在小屏幕上正常显示。 最重要的问题与 CSS 有关,尤其视图的尺寸。如果我们一比一的复制桌面模型,CSS 可能不会正常工作。...这使得你的网站和在桌面浏览器中显示的一样。 布局视图有多宽呢?不同的浏览器各有差异。...关键的一点是:布局视图在缩小模式下能够完全显示在屏幕上。(此时视觉视图等于布局视图) ? 如下图,布局视图的宽高与完全缩小模式下的宽高是相同的。当用户放大后,这些尺寸仍然相同。 ?... 元素  和在桌面上一样, document.documentElement.offsetWidth/Height 可以获得  元素在 CSS 像素中的尺寸。 ?...大多数浏览器会通过缩小来在屏幕上显示整个布局视图,如下图的效果 ? 所有的用户会立即放大查看,但是大多数浏览器会保持元素的宽度不变,这使得文本很难阅读。 ?

    2.1K70

    怎样在 SQL 中创建一个视图,用于显示所有年龄大于 30 岁的员工的信息?

    在数据库管理和数据分析中,视图(View)是一个强大的工具,它能够为我们提供一种便捷、高效的数据展示方式。...今天,我们将探讨如何在 SQL 中创建一个视图,专门用于显示所有年龄大于 30 岁的员工的信息。...后面的“AS”关键字引出了一个子查询,即“SELECT * FROM employees WHERE age > 30”,它的作用是从“employees”表中筛选出年龄大于 30 岁的员工的所有信息。...创建好这个视图后,我们就可以像使用普通表一样对其进行查询、连接等操作。...此外,视图还可以基于多个表进行创建,或者对现有视图进行进一步的组合和定制,以满足更加复杂和多样化的业务需求。 总之,通过创建视图来筛选特定条件的数据,是 SQL 中一种非常实用的技巧。

    88910

    【译】正确使用FAB

    Floating Action Button,简称FAB,作为材料设计中(众多)独特的UI元素之一,用于特定场景中基本或有推动等作用的行为中。...因为在指定屏幕中,会被频繁的访问(译者注:如点击,触摸等),所以,我认为正确处理FAB的每一个细节是件很重要的事情。...很多时候,它就像一个不能正确工作的三方库,但是,对于那些独立使用FAB的应用,它不应被设计的过于复杂(例如,没有展开更多选项等功能)。...**不恰当的视图标高,图标略微有点大** 正确的FAB 所以,这个独具特色的按钮,在材料设计中的规范是怎样的呢?从上面的这些对照中可以看出,Messenger可以说是最精准的运用了FAB。 ?...否则FAB会因为Material属性与app中其它Material元素不同而看起来有些不搭配。 关心设计细节 如果认为,这属于太挑剔或者太细微而不能引起用户的注意。

    1.1K10

    《Motion Design for iOS》(十五)

    从UIKit和CoreAnimation开始 通常情况下,iOS app中屏幕上的物体都是UIView对象。它们是矩形的并且有坐标和大小来定义它们在屏幕上的位置和尺寸。...比如说,iOS app中的状态栏是一个长且瘦的视图,处于屏幕的顶端,并且状态栏目中的每个物体(时间、电池指示器、信号强度指示器等等)都是状态栏视图中的其它视图。...视图,用来包含UITableView中一行的元素 UILabel中的帖子标题 评论数量UIButton,由一个评论气泡图和评论的数量组成 显示帖子URL的UILable UILabel中显示帖子的点值和子板...如果你不熟悉iOS用户界面开发,看看一些你喜欢的app,看能不能找出界面中所有的视图,以此作为分解你自己设计的练习,这样你就可以学习在代码中构建它们。...在屏幕上布局,靠近或在其他视图的顶部,还可能会有高级的透明效果来整合到一起或者快速绘制。像你想象的一样,让大量的视图在屏幕上移动确实是一个挑战,尤其是在一个小的,低功率的设备上。

    1.1K40

    Unity-UI(UGUI详解)02.1 Canvas组件、Visual组件

    如果屏幕的大小变化UI将自动匹配大小。UI将覆盖其他图像比如摄像机视图。 Note: The Screen Space-Overlay canvas需要放置在hierarchy的最上层。...UI在屏幕上的大小不随着距离的变化而变化,如果屏幕大小或者分辨率变化UI将自动适应。任何3D objects在场景中相比UI plane到摄像机的距离更近,将渲染到UI的前面。...Properties: UI Scale Mode: 决定UI元素的大小在canvas中是由什么决定的: Constant Pixel Size(固定大小,不随屏幕大小变化) Scale With...mask将限制子元素的大小。如果子元素的大小比父元素大,将显示比父元素小的部分。...RectMask2D的限制: 只能在2D空间下 不能正确的显示非共面元素 RectMask2D的优势: 它不使用模板缓冲 没有额外的draw calls 没有材质的改变 更快的表现 UI Effect

    2.8K10

    开源跨平台移动项目Ngui【视图与布局系统】

    用它来描述屏幕上所有可见的元素,它是所有视图的基础类型它也是事件的响应者,这些事件由硬件以及操作系统触发。详细的API文档讲大家去这里查阅。...视图在广义功能上划分有两类: 非布局视图(非Layout) 布局视图(Layout) 非布局视图 顾名思义非布局视图就是那种不带布局功能的视图,就是你把它的位置固定后,它是不会再受到任何其它视图元素有影响...矩阵变换是GUI绘图系统里的一个重要概念,transform用一个Matrix来描述绘图元素点线或面在屏幕上的实际位置与形状,这个矩阵通常由一组3x3或4x4向量组成,3x3为2d矩阵4x4为3d矩阵,...对这就是这个视图在屏幕是的真实位置,确切的讲是这个View.origin在屏幕上的确切位置,因为严谨的说一张图片或一个矩形在屏幕上是由4个点组成的一个面。...,也就是说它并不会在屏幕上显示任何可见的东西,它的存在只为是为了设置嵌套的TextNode视图属性,因为以TextLayout上的属性都能被它的子TextLayout所继承,这也是ngui中唯具有继承性质属性的视图

    1.3K90

    Flutter布局基础——Row水平布局

    Flutter布局基础——Row水平布局 Flutter中水平布局使用Row,可设置元素水平方向排列,如果想要子元素充满,可把子元素使用Expanded包括起来。 背景 使用Row布局的Widget,不能滑动;通常使用Row布局的时候,默认所有的子元素加起来不能超过父视图的宽度。如果想要横向滑动,可考虑使用ListView。...: 子视图在父视图上的布局方式 MainAxisAlignment.spaceAround: 子视图之间和子视图距离父视图都留有间距 MainAxisAlignment.center: 所有子试图居中...: 子视图之间和子视图距离父视图都留有间距,且间距都相等 MainAxisAlignment.start,所有子视图居于最开始 注意mainAxisAlignment在子元素使用了Expanded时,没有效果...,对比后能发现,同时使用Expanded包括起来后,相当于三个子元素均分了屏幕宽度。

    3.8K10

    简单了解下无障碍设计模式

    W3C 推荐在正文文本和图片中使用以下对比度: 小文本和它的背景色之间至少有 4.5:1 的对比度 大文本(加粗的14pt/普通的18pt及以上)和它的背景色之间至少有 3:1 的对比度 正确示例 这些文本遵循颜色对比度建议...添加到原生元素上的额外的声音(屏幕阅读器能够正确的翻译原生元素) 标记用户界面元素 给输入控件和其他元素添加描述,供屏幕阅读器等设备可以进行朗读 动效 Material design 使用动效来引导视图之间的焦点...正确示例 滑块值和滑块控件非常接近。 错误示例 滑块值和滑块控件之间的距离太远。对于放大了屏幕的用户,如果不在滑块和值之间来回浏览的话,可能不能同时看到滑块和值。...用户也可以在屏幕上向前或向后滑动来移动焦点,来从上到下线性地阅读页面。这允许用户在某些元素上进行训练。在 TalkBack 中,这称为线性导航。...构建无障碍的自定义视图 仅用过 Wi-Fi 下载 正确示例 使用简短的说明。 已选择通过 Wi-Fi 下载 错误示例 不要写出状态。

    5.8K40

    小程序入坑指南 | 鹅厂优文

    1524122427_12_w484_h437.png 这里我想重点说一下视图层,我们都知道HTML+CSS+JS是Web编程的组合,在小程序里,WXML对应的便是HTML,WXSS对应的是CSS。...所以在微信小程序中1rem=750/20rpx,同时设计稿的尺寸推荐使用750作为设计稿的标准宽度。...下面我们来看一下具体的实现方法: 目录结构如下,只要图片按正确的方式放入小程序的开发工具的项目中,即可在wxml文件中用内联样式或者image标签都可以引用本地的图片。...媒体组件 camera 这个项目的主要难点其实是如何在拍照的界面上添加文字和遮罩层,起初我尝试用很多方法,都无法在人体轮廓上面显示所需要的内容,如图,预览界面显示的效果是我想要的,但是手机上却并没有显示对应的内容...,有一点要注意的是:原生控件cover-view作为父容器时,不能使用其他控件嵌套作为子元素,只能使用cover类的控件如:cover-view、cover-image,切记!

    2.8K110

    开源跨平台移动项目Ngui【视图与布局系统】

    用它来描述屏幕上所有可见的元素,它是所有视图的基础类型它也是事件的响应者,这些事件由硬件以及操作系统触发。详细的API文档讲大家去这里查阅。...视图在广义功能上划分有两类: 非布局视图(非Layout) 布局视图(Layout) 非布局视图 顾名思义非布局视图就是那种不带布局功能的视图,就是你把它的位置固定后,它是不会再受到任何其它视图元素有影响...矩阵变换是GUI绘图系统里的一个重要概念,transform用一个Matrix来描述绘图元素点线或面在屏幕上的实际位置与形状,这个矩阵通常由一组3x3或4x4向量组成,3x3为2d矩阵4x4为3d矩阵,...对这就是这个视图在屏幕是的真实位置,确切的讲是这个View.origin在屏幕上的确切位置,因为严谨的说一张图片或一个矩形在屏幕上是由4个点组成的一个面。...,也就是说它并不会在屏幕上显示任何可见的东西,它的存在只为是为了设置嵌套的TextNode视图属性,因为以TextLayout上的属性都能被它的子TextLayout所继承,这也是ngui中唯具有继承性质属性的视图

    74520

    微信小程序开发学习笔记(二)——小程序框架、组件、WXML

    name 与视图层的 name 进行了绑定,所以在页面一打开的时候会显示 Hello Weixin!...可以根据屏幕宽度进行自适应,不论大小屏幕,规定屏幕宽为750rpx 通过 rpx 设置元素和字体的大小,小程序在不同尺寸的屏幕下,可以实现自动适配 rpx 和 px之间的换算 在普通网页开发中..., 最常见的像素单位是px 在小程序开发中推荐使用 rpx这种响应式的像素单位进行开发 如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px...,view就相当于html5中的div,也是块状元素 官方文档给出的解释呢就是:视图容器 我们在编写html5页面所用的div呢,在开发小程序中就改成view即可 属性说明: 属性 类型 默认值 必填...,可以从 bindcontact 回调中获得具体信息,具体说明 (*小程序插件中不能使用*) 1.1.0 share 触发用户转发,使用前建议先阅读使用指引 1.2.0 getPhoneNumber

    2.4K40

    Apriso 开发葵花宝典之三 Process builder HTML 篇

    (如项目、屏幕、布局、视图和操作(函数))创作用户界面和业务逻辑。...由于增强了对可重用性的支持,以前开发的逻辑可以在新的设计中快速重用。 本文介绍几个在常规培训学习中容易被忽略,但又能有效提升开发效率的Process builder Html相关内容。...Screen Interface函数有以下限制: 屏幕接口函数不能被迭代、复制等。 一个“step步骤”中只能包含一个界面功能。 不能只复制屏幕接口函数。如果要做到这一点,需要复制整个步骤。... Screen Interface不能包含用户user 类型的输入/输出。 无法删除Screen Interface函数,因为屏幕界面函数是HTML布局编辑器的一个组成部分。...View,和View对象一致 $View.node: HTMLElement – 获取当前视图一个HTML元素 $View.onLoaded(func: () => void): void; 在加载视图并将其添加到文档对象模型

    1.1K20

    扒一扒安卓渲染原理

    ,CPU除了做逻辑计算外,还负责内存管理、图形显示等操作因此在实际运算的时候性能会大打折扣,而且还不能显示复杂的图形,完全不能满足现在3D游戏的要求;所以GPU应运而生。...,把样式显示到屏幕中; 现在我们把应用加到显示流程里面来 在Android应用层通过LayoutInflater把布局XML文件映射成对象加载到内存中,此时这个UI对象含有大小,位置啦等等信息。...View)元素,这些元素是以树形结构来组织,最终构成所谓视图树的结构; 在绘制一个Android应用程序窗口的UI之前,要确定它里面的各个子View元素在父元素里面的大小以及位置。...(高、宽) 布局——递归(深度优先)确定所有视图的位置 绘制——在画布canvas上绘制应用程序窗口所有的视图 经过多次绘制后,这一帧内要显示的所有view都已经被绘制完毕,注意绘制View层次结构这些操作是在图形缓冲区中绘制完成的...,主要负责统一管理设备中Android系统的帧缓冲区(Frame Buffer,简单理解为屏幕所显示出来的所有图形效果都是由它统一管理的),在SurfaceFlinger服务启动的过程中会自动创建两个线程

    1.2K10
    领券