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

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF

解释附加行为的概念并展示如何在 MVVM 模式上下文中使用它们。...本文解释了什么是附加行为,以及您如何在 WPF 应用程序中实现它们。本文的读者需要稍微熟悉 WPF、XAML、附加属性、以及 MVVM 模式。...Pascal 想知道怎样让一个 TreeViewItem 在与它关联的 ViewModel 对象中选中它时将它滚动到 TreeView 的可视区。...例如,假设用户从一个 TreeView 中搜索显示文本匹配用户自定义搜索字符的一项。当搜索逻辑找到一个匹配项,ViewModel 中的匹配对象会将其 IsSelected 属性设置为 true 。...点击 Find 按钮几次,你会看到每次选中了一项,它包含了字母 Y 并且会滚动到视野中。一旦被选中就会滚动到视野中这个事实意味着附加行为工作正常。

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

WPF DataGrid 如何将被选中行带到视野中

WPF DataGrid 如何将被选中行带到视野中 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 在 WPF 开发中,显示表格一般使用 DataGrid...而还有一种情况,我们可能在业务逻辑中,由程序自己选中了某一行,如果这一行当前不在用户界面的可视区(换句话说也就是滚动条没有滚到那个位置),那么我们如何将其带到用户的视野中呢?...我们先将数据添加到 10 条,然后缩小程序的窗口,这样有些数据就在滚动区外面了,也就是不在视野中。...然后我们通过程序来选中行,可以看到选中功能是正常的,但是对于视野外的数据,用户看不到其是否选中,需要手动滚动来寻找,如下图(动图): 好,那接下来就介绍怎么解决吧。...先给 DataGrid 命个名( x:Name="Dg" )方便后台使用,然后在 ViewModel 中添加一个选中项改变事件 SelectedItemChanged,并在选中项改变时调用(参数为选中行的索引

1.8K10

vue 虚拟列表的实现

虚拟滚动是 Vue 虚拟列表的核心技术之一。它通过仅在屏幕上显示可见部分的列表项,而不是整个列表来减少渲染所需的时间和资源。...虚拟滚动的实现涉及到计算列表项的高度或宽度,以及计算屏幕可见区域的高度或宽度。这些计算可以通过测量DOM元素的高度或宽度来完成。...当用户滚动时,列表会动态地更新,以显示当前可见区域的列表项。在实现中,我们使用了一个计算属性 visibleItems 来计算当前视图中需要渲染的列表项,并使用 v-for 指令来动态地渲染它们。...我们还使用一个监听滚动事件的方法 onScroll 来更新可见区域的起始索引,从而更新视图中显示的列表项。 总之,Vue 虚拟列表是一种优化大型列表的渲染性能的技术。...在 Vue 中实现虚拟列表通常需要遵循一些步骤,计算列表项的高度或宽度、计算屏幕可见区域的高度或宽度、计算当前视图中需要渲染的列表项、维护一个缓存池以及动态地添加和删除DOM元素。

15510

scrollWidth,clientWidth,offsetWidth的区别

网页可见区域宽:document.body.clientWidth; 网页可见区域高:document.body.clientHeight; 网页可见区域高:document.body.offsetWeight...,不包滚动条等边线,会随窗口的显示大小改变。...offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。.../body> offsetWidth的值总是比clientWidth的值打 clientWidth是对象看到的宽度(不含边线) offsetWidth是对象看到的宽度(含边线,滚动条的占用的宽...,包滚动条等边线,会随窗口的显示大小改变 event.clientX 相对文档的水平座标 event.clientY 相对文档的垂直座标 clientWidth:是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变

2.1K20

如何处理 React 中的 onScroll 事件?

注意事项需要注意以下几点:在处理滚动事件时,我们可以在回调函数中执行任何逻辑,加载更多数据、显示/隐藏元素等。通过使用 useEffect 钩子,我们可以确保在正确的时机添加和移除滚动事件的监听器。...在 React 中,我们可以使用第三方库( lodash)来实现节流和防抖功能。...虚拟化技术只渲染可见区域内的元素,而不是全部渲染。这样可以减少 DOM 操作和计算量,提高滚动的流畅性和响应速度。...在 React 中,有一些流行的虚拟化库, react-virtualized 和 react-window,可以帮助我们实现滚动区域的虚拟化。...使用这些库,我们可以将大型列表或表格分成可见区域和不可见区域,并动态加载和卸载元素,以优化性能。结论本文详细介绍了如何处理 React 中的滚动事件(onScroll),以及一些优化技巧。

2.9K10

「前端进阶」高性能渲染十万条数据(虚拟列表)

什么是虚拟列表 虚拟列表其实是按需显示的一种实现,即只对 可见区域进行渲染,对 非可见区域中的数据不渲染或部分渲染的技术,从而达到极高的渲染性能。...说完首次加载,再分析一下当滚动发生时,我们可以通过计算当前滚动值得知此时在屏幕 可见区域应该显示的列表项。...假设滚动发生,滚动条距顶部的位置为 150px,则我们可得知在 可见区域内的列表项为 第4项至`第13项。 ?..., [50, 20, 100, 80, ...]...为了使页面平滑滚动,我们还需要在 可见区域的上方和下方渲染额外的项目,在滚动时给予一些 缓冲,所以将屏幕分为三个区域: 可视区域上方: above 可视区域: screen 可视区域下方: below

10.2K74

再谈BOM和DOM(6):dom对象及event对象位值计算—offsetXTop,clentX

event对象位置信息获取 先总结下区别: event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。...不包括overflow被折叠起来的部分,不包括滚动条、border,包括padding     obj.clientWidth = (width + padding)   //获取元素的宽度——对象可见的宽度...因为滚动条不会出现在顶部或者左侧 offset 指偏移,包括这个元素在文档中占用的所有显示宽度。比client 多了border。     ...,包括这个元素没显示出来的实际宽度,包括padding,不包括滚动条、border     scrollWidth 获取对象的滚动宽度,对象的实际宽度;     scrollHeight 获取对象的滚动高度...    scrollLeft 已滚动过去的宽度 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离     scrollTop  设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

1.4K20

从零开始学 Web 之 CSS3(三)渐变,background属性

*/ local与scroll的区别:当滚动的是当前盒子(div)里面的内容的时候, local:背景图片会跟随内容一起滚动; scroll:背景图片不会跟随内容一起滚动。...2、新增的background属性 2.1、background-size CSS里的 background-size 属性能够让程序员决定如何在指定的元素里展示,它通过各种不同是属性值改变背景尺寸呈现的大小...,如果背景区域不足以包含所有背景图片,图片内容会溢出 1.图片大于容器:等比例缩小,会填满整个背景区域,有可能造成图片的某些区域可见 2.图片小于容器:等比例放大,填满整个背景区域,图片有可能造成某个方向上内容的溢出...说白了,就是设置最终显示那些区域。...由图可见,返回箭头下 a 的范围变大了,那么用户点击的响应区域也就大了。

1.8K10

Snagit for mac(屏幕截图和屏幕录制工具)

Snagit可以快速捕捉全屏、窗口、区域滚动屏幕截图,并提供多种编辑工具,裁剪、调整大小、添加文本、箭头、形状、高亮、马赛克和数字等标记。...功能更新添加了在 Screen Draw 处于活动状态时滚动的功能。当用户退出绘图模式时,屏幕绘图对象现在会自动淡出。改进了 Chrome 网络浏览器中自动滚动箭头的可见性。...提高了在 Chrome 网络浏览器中自动滚动捕获的准确性。提高了 Xcode 自动滚动捕获的准确性。在自动和全景(手动)滚动捕获的处理窗口中添加了一个进度条。自动滚动捕获箭头现在弹跳以提高可见性。...修复了自动滚动捕获有时会错过列表中最后一项的问题。修复了防止透明区域添加到全景(手动)滚动捕获的顶部和底部的问题。修复了全景(手动)滚动捕获后预览窗口有时会保留在屏幕上的问题。...修复了录制全屏时 Screen Draw 控件未移动到不同显示器(如果可用)的问题。修复了捕获选择十字准线会将光标检测为选择区域的问题。

3K00

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

当详情展开按钮在表格行中出现时,点击表格行的其它区域不会激活此按钮,只会选中该行,或者触发app中其它自定义的行为。...不要使用页面控件来显示视图中的层次结构或其他复杂的排列。页面控件不显示视图是如何相互关联的,而且不表明哪个视图对应于每个点,因此它不能帮助用户导航到特定的视图。 避免显示太多点。...举个例子,你可以在文本框的左侧或者右侧加入自定义图形,或者加入系统按钮,书签按钮等。一般来说,文本框的左侧用于表述文本框的含义,而右侧用于展示附加的功能,书签。...我们推荐您限定好警告框的最大高度,保证在竖屏和横屏模式下文字均能不需要滚动便可完整地显示。 一般情况下,使用两个按钮的警告框。两个按钮的警告框是最为常见和有用的,因为它最便于用户在两个按钮中做选择。...避免让用户滚动操作列表。如果你的操作列表中存在过多按钮,用户必须要滚动才能看完所有操作。这样的体验是可能让用户不安,因为他们要花更多的时间来充分理解每个选项的区别。

13.2K30

Human Interface Guidelines —— Scroll Views

Scroll View Scroll View允许用户浏览大于可见区域的内容,例如文档中的文本或图像collection。 ...Scroll view也可以配置为以分页模式运行,这时scroll显示一个全新的内容页面,而不是在当前页面上移动(红板报)。 ? 红板报 使用时注意 ·适当地支持缩放行为。...·考虑在scroll view处于分页模式时显示页面控制元素 页面控件显示有多少页面,屏幕或其他内容块是可用的,并指示哪一个当前可见。...·一般来说,一次显示一个scroll view 滚动时人们经常做出大滑动手势,并且很难避免与同一屏幕上的邻近scroll view进行交互。...例如,当iPhone处于纵向时,股市app会显示垂直滚动显示沿水平滚动的公司特定信息的股票报价。 ? 股市

1.1K80

scrollwidth和clientwidth_vue监听页面滚动

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。...clientWidth 是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。...等于border+padding+width clientwidth:是元素的可见宽度。等于padding+width scrollwidth:是元素的宽度且包括滚动部分。...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.7K10

Material Design — Navigation drawerStandard drawer Modal drawer Bottom drawer

Navigation drawer ---- 用法 Navigation drawer 提供对目的地和 app 功能的访问,切换帐户。 它们可以永久在屏幕上显示,也可以通过导航菜单图标进行控制。...用与容器相同长度的dividers将组分开;不要将每个目的地都分开 ---- Header(标题) Navigation drawer 的 header 区域是一个灵活的空间,可用于品牌表达( app...Dismissible standard drawers 可用于内容优先(照片库)的布局或用户不太可能经常切换目的地的 app,且应该使用可见的 navigation menu icon 来打开和关闭抽屉...滚动 Bottom navigation drawers 一旦打开至全屏高度,就可以在内部滚动。 当最初打开到屏幕高度的50%时,在显示其他项目之前,必须将 drawer 拖到屏幕高度。...全屏时才能内部滚动 Content hierarchy(内容层级) 由于 bottom navigation drawer 内容项的数量一开始并不全部可见,因此 drawer 的内容应按以下顺序排列:

3.8K40

深入了解 SwiftUI 5 中 ScrollView 的新功能

当 scrollClipDisable 为 false 时,滚动内容会被裁剪以适应滚动容器边界。任何超出边界的部分将不会显示。...当 scrollClipDisable 为 true 时,滚动内容不会被裁剪。它可以延伸超出滚动容器的边界,从而显示更多内容。...应将此修饰符应用于 ScrollView 中包含主要重复内容的布局容器, LazyHStack 或 VStack。...它只影响滚动视图的初始状态,一次性设置。通常用于实现类似初始状态从底部显示的 IM 应用、从 trailing 开始显示数据等情况。通过 UnitPoint 可以同时设置两个轴向的初始位置。...目前定义了三种阶段状态(Phase): topLeading: 视图滑入滚动容器的可见区域 identity: 表示视图目前在可见区域中 bottomTrailing: 视图滑出滚动容器的可见区域 scrollTransition

69020
领券