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

WPF 如何判断一个控件在滚动条的里面是用户可见

我有一个控件,这个控件放在滚动条里面,如果在滚动条滚动到这个控件可以被用户看见的时候,我能知道这个事件,或从什么时机可以拿到用户可以看见的范围修改?...昨天星期八再娶你 大佬问我如何判断在滚动条内可以看到某个元素,他需要在滚动条里面放一个视频播放器,在用户看不到这个播放器的时候自动停下这个播放器 在 WPF 可以通过 ScrollChanged 拿到当前的滚动到哪同时拿到滚动条可见的宽度和高度...在 ScrollChangedEventArgs 提供了多个属性用于拿到当前的滚动条的可见的宽度和高度,滚动条的水平移动和垂直的移动,具体请看下图 在用户修改外层控件的宽度或高度让滚动条的高度或宽度进行修改的时候...等属性知道用户修改了多少 那么如果判断某个控件在滚动条可见内就可以拿到某个控件的外接矩形和滚动条可见大小进行矩形判断,请看下图 那么如何拿到一个控件的外接矩形?...// 控件的宽度和高度 var controlBounds = new Rect(top, control.DesiredSize); 此时计算滚动条的用户可见的大小,通过滚动条的水平和垂直移动加上宽度和高度

95220

win10 uwp 如何判断一个控件在滚动条的里面是用户可见

在 UWP 中如何知道一个元素是在滚动条的显示大小内用户可以看到这个控件?如果需要在控件在滚动条里面用户可以看到的时候触发某个事件,在用户看不到的时候触发另一个事件可以怎么做?...如何判断一个控件在滚动条的里面是用户可见但是在 UWP 中的小伙伴,也就是做 UWP 的大佬对 API 的设计会更加诡异 在 UWP 没有 ScrollChanged 事件只有ScrollViewer.ViewChanged...,所以通过这个事件判断控件是否在滚动条可见是不可靠的 昨天星期八再娶你 大佬告诉我一个可以使用的方法是通过LayoutUpdated 事件拿到触发,在布局属性修改的时候、在窗口修改的时候在运行时的布局的时候都会触发这个事件...在LayoutUpdated可以在控件第一次加载的时候触发,可以在用户滚动的时候触发 在 LayoutUpdated 通过判断控件的左上角坐标和控件的大小可以判断用户是否可以看到这个控件 在 UWP...(new Point()); 这个方法和 WPF 的 TranslatePoint 方法相同 判断滚动条可见大小不能从方法的参数拿到,需要直接拿滚动条控件,这样会存在一个坑在于时机的问题,和 WPF 不相同

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

    【方法】如何删除你在CoCo编辑器导入的自定义控件

    答:有必要,应为右键移除仅限于官方的控件商城里面的控件,不适用于自定义控件。我们有什么方法?...以下是我整理的方法:刘lyxAndy的方法:原文链接:编程猫社区-WidgetRemover:移除CoCo编辑器中不用的自定义控件!...命令执行结束后,再次输入npm start命令即可使用!下次如需使用,打开widgetremover文件夹再次执行第3步即可!提示:本工具涉及到登录编程猫账号,但并不会上传您的任何账号数据到云端。...方法:先保存你的json文件在CoCo编辑器打开你的json文件先删除你和自定义控件有关的代码(不删可能会失败,但我没尝试过)建议移除你的所有云控件和所有全局控件(不删可能会失败,但我没尝试过)重新保存...json文件将json文件使用VSC编辑器打开找到有关自定义控件的代码并将他删除(extensionWidgetLis后面的代码)一股脑删完后可能会报错,请记得修改如有不会的,请私信我,我将指导你©编程少年

    11001

    51信用卡 Android 自动埋点实践

    在回调函数中调用 SDK 封装好的方法,传入被点击控件的 View 对象,通过 View 对象本身的特征信息,得到这个控件的唯一 ID,然后上传埋点,即可统计出我们想要的控件相关的点击、长按指标。...,控件就找 onClick(View view) 方法 然后根据方法名和参数类型,得到 CtMethod 对象 调用 CtMethod 对象的编辑方法体的 API,在原始方法体之前插入就调用 insertBefore...,之后就调用 insertAfter,传入需要插入的代码块 调用 CtClass 的 writeFile() 方法,保存这次编辑 将项目中所有的源文件遍历一边后,我们就完成了整个项目代码的插桩,在我们想要的切入点...image.png 处理完可被点击或长按的条件后,我们要判断控件在当前界面是否可见,因为我们需要在截图上把控件全选出来,如果控件本身是不可见的也被圈出来,用户就会比较迷茫。...控件符合上述的可被点击或长按且在当前界面可见这两个条件,其信息就会被并上传至管理后台,用户就可以对这个控件进行编辑,绑定自定义的业务 ID,管理后台得到控件与自定义业务 ID 的关联关系后,即可生成配置表

    1.8K30

    从0系统学Android--3.1编写UI界面

    3.1 如何编写程序界面 Android 中许多编写程序界面的方式。Android Studio 提供了可视化的编辑工具,并且允许我们通过拖放控件的方式来编写布局,并能在视图上直接修改控件的属性。...3.2 常用控件的使用方法 Android 提供了大量的 UI 控件,下面就挑选几种常用的控件来详细的介绍一下使用方法。...3.2.3 EditText EditText 是程序用于和用户交互的时候的一个重要控件,允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。...那么数据加载完成后如何让进度条消失呢?...这个时候需要引入一个属性了 android:visibility 默认是 visible 表示可见的,还有 invisible 表示控件不可见但是仍然占据原来的大小,gone 表示控件不可见也不会占用任何屏幕控件

    98210

    UIScrollView

    (nonatomic,readonly,getter=isDragging) BOOL dragging; //25.返回的内容是否在滚动视图后,用户接触他们的手指(只读) @property(nonatomic...:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view; //29.它开始发送跟踪邮件的内容视图后动视图调用此方法...void)setZoomScale:(CGFloat)scale animated:(BOOL)animated NS_AVAILABLE_IOS(3_0); //34.缩小到特定区域的内容,所以它是在接收器中可见...#pragma mark - 代理方法 /** * 只要scrollView在滚动,就会调用这个方法(监听scrollView的滚动) */ -...代理方法:方法名一般是控件名开头,比如UIScrollView的代理方法一般以scrollView开头 如何监听控件的行为 通过addTarget: 只有继承自UIControl的控件,才有这个功能

    1.8K60

    2.ui

    visible表示控件是可见的,这个值是默认值,不指定 android:visibility时,控件都是可见的。...我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入 View.VISIBLE、View.INVISIBLE和 View.GONE三种值。...()方法中还是会调用View的findViewById()方法来获取一次控件的实例。...当 convertView为时候, 创建一个 ViewHolder对象, 并将控件的实例都存放在 ViewHolder里, 然后调用View的setTag()方法,将 ViewHolder对象存储在 View...ListView注册了一个监听器,当用户点击了 ListView中的任何一个子项时就会回调 onItemClick()方法, 在这个方法中可以通过 position参数判断出用户点击的是哪一个子项,然后获取到相应的水果

    1.6K90

    【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    Activity是Android中最常见的四大组件之一,在中文中意思为活动,提供用户交互的可视化界面,能够提供用户的体验服务。...Android的图形用户界面是由View和ViewGrop对象构建的,View为组件化,ViewGrop为不可见的视图容器,是用来定义子视图的。...图片来源官方: 图片 四种状态 活动状态: 当前的activity处于最顶端,位于栈顶,用户可见,使应用获取焦点。 暂停状态: activity失去焦点,但对用户可见,如:弹窗。...()方法中,如果内存低,会被process is killed,然后进行onCreate(),否则当该activity再次返回前台调用onResume()的方法。...处于onStop()方法中,如果内存低,会被process is killed,然后进行onCreate(),另一种当该activity再次返回前台时调用onRestart()的方法进入onCreate

    1.2K20

    如何将第三方控件嵌入ToolStrip控件,并提供Design-Time支持

    最近研究了一下如何将第三方控件嵌入到ToolStrip控件中,并能提供Design-Time下的支持. 下面将详细讲解如何把系统的MonthCalendar控件嵌入到ToolStrip控件中....this.toolStrip1.Items.Add(new ToolStripControlHost(monthCalendar)); } 二, 从ToolStripControlHost派生, 在继承类默认参构造函数中将第三方控件作为参数调用基类的有参构造函数...这种方式可以很容易的在继承类中暴露属性,方法和事件,便于访问. 实现步骤如下: 1, 扩展 ToolStripControlHost。实现一个调用传入所需控件的基类构造函数的默认构造函数。...它可以使ToolStrip在Design-Time下能够找到从ToolStripControlHost继承的第三方控件, 直接效果就是第三方控件在下拉菜单中可以直接列举出来....ContextMenuStrip 指定 ContextMenuStrip 是可见的。 MenuStrip 指定 MenuStrip 是可见的。 None 指定无任何控件可见。

    1K80

    答案:Excel VBA编程问答33题,继续……

    excelperfect 下面是一些关于控件、事件和类的基础问题的回答,你的答案是不是一样的? 1.控件的Exit事件何时发生? 在控件失去焦点之前。 2.VBA程序如何修改双击间隔? 不能。...4.KeyDown事件过程中的代码如何取消按键? 通过将KeyCode参数设置为0。 5.在用户窗体上对齐控件的最快方法是什么? 通过使用“格式”菜单上的“对齐”命令。...6.假设一个控件被重叠控件隐藏。在运行时,如何使隐藏的控件可见? 调用具有fmTop参数的隐藏控件的ZOrder方法。 7.如何防止用户通过制表键将焦点移到控件上?...14.如何定义在一天的特定时间执行的代码? 使用OnTime事件。 15.如何允许用户查看工作簿但不能进行修改? 通过在“另存为”对话框的“工具”菜单中设置“修改权限密码”。...31.类方法与常规VBA过程有何不同? 除了在类模块中之外,没有什么不同。 32.什么是辅助方法? 仅应从类内部而不是类外部的代码调用的方法。 33.在销毁对象之前触发了什么事件?

    4.2K20

    Spread for Windows Forms高级主题(8)---通过暂停布局提高性能

    如果你在一个代码块中对表单做了大量的变动,使用SuspendLayout方法可以避免控件在每一次变动发生时对布局对象所做的多余的中间计算,在所有变动完成之后使用ResumeLayout(true)方法重新计算布局对象...如果没有在同一个代码块中有相应的恢复方法就会出现异常,控件会显示一个通知“布局处于暂停状态”。...其他改善性能的方法 如果你不使用手写便笺,那么可以将AutoUpdateNotes属性设置为false,阻止控件对必须被设置为可见或隐藏或可移动的手写便笺进行检查。...如果你使用了公式,在更新之前将AutoCalculation属性设置为false,然后再将其设回true,并调用Recalculate方法,这样可减少对公式的多余中间计算。...一定要在同一个代码块中同时使用这两个方法; 否则,如果调用 SuspendLayout方法时没有在同一个代码块中相应的调用 ResumeLayout方法,控件可能无法正确的绘制。

    1.8K60

    ASM字节码插桩

    * 在各个代码块进行基本相同的代码调用,侵入性高,如果后期进行更换SDK,有可能会进行大量改动 * 手动进行埋点可能导致认为疏忽造成的埋点丢失 * 只能根据埋点进行用户行为回溯,有些细节和流程无法衔接上...,无法还原用户使用场景 * 每个版本迭代都需要PM,RD进行埋点梳理,时间进行消耗 全埋点 * 无法在每个按钮,页面加载调用代码,只需要在应用初始化加载即可 * 用户行为触发自动上报,无需PM...同时在Activity启动的时候进行ViewTree的observer,ViewTree改动的时候(比如设置了view的不可见不可点击等)重新进行一遍hook。...使用AspectJ, 思路:在程序编译期间,在相应的onClick方法调用前或后插入埋点代码。...如何使用?

    1K50

    andrioid 桌面

    学习内容 手机桌面管理的技巧 如何实现实时壁纸 如何创建快捷方式 如何创建桌面小控件 如何创建文件夹 能力目标 了解手机桌面管理的技巧 熟练掌握如何实现实时壁纸 熟练掌握如何创建快捷方式...)方法进行重绘,在drawFrame()方法中绘制完成后利用Handler对象指定0.1秒后重绘。...首先写一个只显示一个ImageView的Activity,然后在主布局文件中提供一个id为shortCut的按钮,当用户单击这个按钮时调用上面创建的Activity,将图片显示在屏幕上。...AppWidgetProvider类里提供了如下四个不同的生命周期方法: Ø onUpdate():负责更新桌面控件,它只有在小控件被用户放到桌面上时才会被调用到。...(3) 依次调用Intent对象的putExtra()方法来设置实时文件夹的图标、标题、显示模式等内容。 (4) 设置完成后,调用Activity的finish()方法结束当前的Activity。 ​

    6810

    安卓学习记录

    2、回调方法 onCreate():在Activity第一次被创建的时候调用,在这个方法里完成初始化操作,比如加载布局,绑定事件 onStart():在Activity由不可见变为可见的时候调用 onResume...():在Activity准备好和用户进行交互的时候调用,此时Activity一定位于返回栈的栈顶,并且处于运行状态 onPause():在系统准备去启动或者恢复另一个Activity的时候调用,通常在这个方法中将一些消耗...CPU资源释放掉,以及保存一些关键数据,但是这个方法一定要快,否则会影响到新的栈顶Activity的使用 onStop():在Activity完全不可见的时候调用,与onpause的区别是,如果新Activity...,而在onDestory方法中完成内存释放的操作 可见生存期:Activity在onStart()和onStop()之间所经历的,就是可见生存期。...在可见生存期,Activity对于用户总是可见的,即时可能无法和用户进行交互 前台生存期:Activity在onResume()方法和onPause()方法之间所经历的就是前台生存期。

    2.5K10

    UIScrollView的一步步实现1 简介1.1 工作原理1.2 UIScrollView常见的几个重要控件1.3 UIScrollView常见的重要属性1.4 手工代码实现拖动2 三个重要属性的进

    UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 1.1 工作原理 在缩放的时候,原理是操作被缩放控件的的transform数值。...- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return self.imageView; 正在缩放时调用的方法...- (void)scrollViewDidZoom:(UIScrollView *)scrollView 缩放完成时调用的方法 - (void)scrollViewDidEndZooming...:以恒定速度移动到新的offset -(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; 2.1.2 方法:滚动到可见区域...滚动到可见区域(靠近边缘-不会滚动到边缘外侧),如果当前区域完全可见,则什么也不做 如果指定的区域已经在可视范围,不会滚动 如果指定的区域完全超出contentSize的范围,不会滚动 如果指定的区域超越了当前可视区域

    1.6K60

    Android基础部分再学习---activity的生命周期

    2、visible lifetime(可见生命周期) 一个Activity可见生命周期,存在于onStart()和onStop()调用之间。在此期间,用户可以看到屏幕上的activity并与之交互。...当一个其他的Activity启动,并且这个Activity完全不可见的时候,onStop()方法就会被调用。在这两个方法,你可以保持该Activity需要展示给用户的资源。...在整个生命周期的活动中,系统可能会调用onStart()和onStop()多次,因为活动之间交替进行隐藏或显示给用户。...因为在Activity的一次生命周期中,onCreate方法只会执行一次。在Paused和Stopped状态下恢复或重启的下,这些控件、监听和全局变量也不会丢失。...3.如何强制性关闭一个activity Android下结束进程的方法   一、结束一个活动Activity   要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity

    91320

    C#——写一个控件库

    这样做是为了保证控件在窗体设计阶段拖拽能即时地调整自己相关的属性,而不至于外壳改变了,而里面的东西却还是老样子。 最后在我们需要用到这个控件的项目中调用相关dll就OK了。...指定默认属性后,当用户在Form里单击这个控件时,将在属性浏览窗口中自动选定该属性: [DefaultProperty("BtnName")] 2)Browsable:设置控件某一属性或事件是否出现在“...Never:该属性或方法始终不能在编辑器中浏览 Advanced:该属性或方法是只有高级用户才可以看到的功能。...但这也仅仅是不自动显示而已,如果在代码中真的调用了不可见的属性,编译不会报错,运行也不会有问题。...需要注意的是,这种隐藏只有在该控件代码为当前解决方案不可见时有效,也就是说,如果这个控件的实现代码就在你的解决方案内,EditorBrowsable并不能保证用户看不见这个属性。

    1.9K41
    领券