设置 WPF ScrollViewer 中何时滚动

2024-02-11

我有一个滚动查看器,其中包含一个网格,其中有一堆表单控件(文本框、复选框、组合框等)。当我通过选项卡浏览控件时,滚动查看器将滚动,但仅在必要时滚动。我的意思是我通过选项卡浏览滚动查看器中的所有内容,并且仅当控件不可见时滚动查看器才会滚动。我想要完成的是当控件位于可见区域底部 25% 时让滚动查看器向下滚动,然后当控件位于可见区域顶部 25% 时向上滚动(反向制表)。这能实现吗?


我找到的解决此问题的最佳解决方案是处理表单控件的 GotFocus 事件。由于我在公共区域中生成控件,因此很容易将其分配给创建的所有控件。在此事件处理程序中,我找到元素在其包含的网格中的位置。然后,我在滚动查看器上执行 ScrollToVerticalOffset,计算减去滚动查看器渲染高度的一半。如果可能的话,这会将活动控件保持在滚动查看器的中间。

void FormElement_GotFocus(object sender, RoutedEventArgs e)
{
    FormElement element = sender as FormElement;
    Point elementLocation = element.TranslatePoint(new Point(), canvasGrid);
    double finalHeight = elementLocation.Y - (canvasScrollViewer.RenderSize.Height/2);
    canvasScrollViewer.ScrollToVerticalOffset(finalHeight);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 WPF ScrollViewer 中何时滚动 的相关文章

  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 如何在 Brackets 中设置 jslint ES6 指令?

    我收到此错误 需要一个标识符 但看到的是 const 我正在使用括号文本编辑器 我找到了这个答案 您需要指定 es6 指令 请参阅 JSLint 帮助 但我不知道如何在括号中指定 es6 指令 这是我的代码 const singleQuot
  • 如何在 Java 中启用客户端 TLS 会话重用 [重复]

    这个问题在这里已经有答案了 我有一个 Java 客户端 它可能会创建到同一服务器的多个会话 TLS 协议具有缓存会话密钥的功能 从而避免对每个连接进行昂贵的 PKI 处理 但我无法让它真正发挥作用 openssl s client reco
  • 如何在 C++ 中从 UTexture2D 读取数据

    我正在尝试从虚幻引擎 C 项目中填充的 UTexture2D 读取像素数据 在我在这里发布问题之前 我尝试使用此链接中描述的方法 https answers unrealengine com questions 25594 accessin
  • 为区域注册过滤器

    有没有办法为特定区域注册过滤器 例如下面的代码全局注册授权过滤器 强制进行身份验证 services AddMvc config gt var policy new AuthorizationPolicyBuilder RequireAut
  • URL 的锚点部分是否发送到 Web 服务器?

    比如说 有一个网址 http www example com hello 会不会 hello根据标准 是否将东西发送到网络服务器 现代浏览器如何运作 这个问题的答案与以下问题的答案类似检索 ASP NET URL 中的锚链接 https s
  • clojure 应用程序使用 eval 泄漏内存

    我的 clojure 应用程序评估单独定义的代码 edn文件在运行时 即如果 edn文件更改后 所包含的函数定义将重新加载到原子中 该原子不断用于计算 如果不受限制的话 应用程序似乎会在一段时间后填满 JVM 的元空间 无限制 堆空间使用情
  • IE问题:它可以处理多少个CSS包含?

    我在主题 Drupal 时遇到了一个奇怪的行为 我打开了一些模块 向页面添加了 5 到 10 个链接标签 虽然这些新的样式表被添加到 Firefox 的级联中 但在 IE8 中 通过添加这些样式表 浏览器会从层次结构中丢弃之前添加的 CSS
  • 找不到任何满足 newrelic-plugin-agent 要求的下载

    我尝试安装 MeetMenewrelic plugin agent如中所述https github com MeetMe newrelic plugin agent https github com MeetMe newrelic plug
  • DirectX12 - 执行命令列表和呈现函数

    我在微软的示例中发现 void D3D12HelloTriangle OnRender Record all the commands we need to render the scene into the command list Po
  • 如何检查进程是否具有管理权限

    如何正确检查进程是否以管理权限运行 我检查了IsUserAnAdimMSDN 中的函数 https msdn microsoft com en us library windows desktop bb776463 aspx 但不建议这样做
  • Angular 7:从订阅内部调用时,ChangeDetectorRef detectorChanges() 会导致无限循环

    在阅读了与变更检测和类似帖子相关的所有材料并未能解决我的问题后 我在这里发帖 变化检测器参考detectChanges 从订阅内部调用时会导致无限循环 如果我不打电话detectChanges I get ExpressionChanged
  • Python Pandas read_csv 跳过前 x 和后 y 行

    我想我可能在这里遗漏了一些明显的东西 但我对 python 和 pandas 很陌生 我正在读取一个大文本文件 只想使用范围 61 75496 中的行 我可以跳过前 60 行 keywords pd read csv keywords li
  • 如何在 Spring Boot Maven 多模块项目中包含另一个模块的资源

    我有一个 Spring Boot Maven 多模块项目 如果spring boot模块依赖模块A并在src main resources模块文件夹A我想在最终的 Spring Boot 应用程序中捆绑一个属性文件或其他一些资源 我该如何实
  • nil:NilClass 的未定义方法“map”

    当用户尝试更新其个人资料时 我的应用程序似乎随机抛出 nil NilClass 的未定义方法 map 错误 但奇怪的是 它说更新时发生错误 但错误行实际上在视图中 完整错误 users update ActionView TemplateE
  • Dynamic_cast 没有按预期抛出异常

    基于这个答案 在 C 中查找对象的类型 https stackoverflow com questions 351845 finding the type of an object in c 我写了这段代码 static TVALUE ge
  • 当我对符号矩阵进行行归约时,为什么 SymPy 给出了错误的答案?

    如果我要求 SymPy 对奇异矩阵进行行归约 nu Symbol nu lamb Symbol lambda A3 Matrix 3 nu 1 0 0 3 nu 2 nu 1 2 0 0 2 nu 1 nu lamb 2 3 0 0 nu
  • Safari 中的 Vue.js 渲染问题

    我有一个使用 Vue 和 Laravel 编写的作品集网站 它使用 v for 呈现项目缩略图 除了 Safari 之外 这在每个浏览器上都工作得很好 但有一个奇怪的问题 除非用户调整浏览器窗口的大小 否则图像根本不会显示 相关代码如下 d
  • 如何在使用 Python 运行 wkhtmltopdf.exe 时停止弹出窗口

    我正在使用 wkhtmltopdf exe 使用 python 将 html 转换为 pdf wkhtmltopdf exe 的弹出窗口使我在运行它时很难处理任何其他事情 我必须转换大约 200K 个文件 并且必须同时处理其他事情 但它确实
  • 是否可以将摘要式身份验证与 XMLHTTPRequest 一起使用?

    我有一个简单的问题 是否可以将摘要式身份验证与 XMLHTTPRequest 一起使用 如果答案是否定的 那么技术原因是什么 或者如果可能的话 我该怎么做 非常感谢 谷歌到目前为止还没有好的答案 EDIT 感谢您的回答 在收到随机数后修改标
  • 设置 WPF ScrollViewer 中何时滚动

    我有一个滚动查看器 其中包含一个网格 其中有一堆表单控件 文本框 复选框 组合框等 当我通过选项卡浏览控件时 滚动查看器将滚动 但仅在必要时滚动 我的意思是我通过选项卡浏览滚动查看器中的所有内容 并且仅当控件不可见时滚动查看器才会滚动 我想