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

如何将Home键/End键传播到WPF ScrollViewer中的UWP RichEditBox?

将Home键/End键传播到WPF ScrollViewer中的UWP RichEditBox可以通过以下步骤实现:

  1. 首先,我们需要订阅UWP RichEditBox的键盘事件。可以使用KeyDown事件来处理按键操作。
  2. 在KeyDown事件处理程序中,我们需要判断按下的键是否是Home键或End键。可以使用VirtualKey枚举值来表示这些按键,例如VirtualKey.Home和VirtualKey.End。
  3. 如果按下的是Home键或End键,我们需要找到UWP RichEditBox的ScrollViewer。可以使用VisualTreeHelper来遍历控件树,查找ScrollViewer控件。
  4. 一旦找到ScrollViewer,我们可以通过调用ScrollViewer的ScrollToVerticalOffset方法来滚动到RichEditBox的开头或结尾。对于Home键,将垂直滚动偏移设置为0;对于End键,将垂直滚动偏移设置为ScrollViewer的ExtentHeight。

以下是一个示例代码片段,展示了如何将Home键/End键传播到WPF ScrollViewer中的UWP RichEditBox:

代码语言:txt
复制
private void RichEditBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Home)
    {
        // 寻找ScrollViewer
        ScrollViewer scrollViewer = FindScrollViewer(RichEditBox);

        if (scrollViewer != null)
        {
            // 滚动到开头
            scrollViewer.ChangeView(null, 0, null);
            e.Handled = true;
        }
    }
    else if (e.Key == Windows.System.VirtualKey.End)
    {
        // 寻找ScrollViewer
        ScrollViewer scrollViewer = FindScrollViewer(RichEditBox);

        if (scrollViewer != null)
        {
            // 滚动到结尾
            scrollViewer.ChangeView(null, scrollViewer.ExtentHeight, null);
            e.Handled = true;
        }
    }
}

private ScrollViewer FindScrollViewer(DependencyObject dependencyObject)
{
    ScrollViewer scrollViewer = dependencyObject as ScrollViewer;

    if (scrollViewer != null)
    {
        return scrollViewer;
    }

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(dependencyObject); i++)
    {
        var child = VisualTreeHelper.GetChild(dependencyObject, i);
        var result = FindScrollViewer(child);

        if (result != null)
        {
            return result;
        }
    }

    return null;
}

请注意,上述代码中的FindScrollViewer方法用于在控件树中查找ScrollViewer。如果UWP RichEditBox被包装在其他控件中,可能需要调整该方法以适应具体的控件结构。

此外,根据您的需求,您可以考虑使用腾讯云的WPF相关产品,如腾讯云的图像识别服务、视频处理服务等来增强您的应用。具体的产品介绍和链接地址可以参考腾讯云官方网站或联系腾讯云客服获取详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 从入门到放弃 500 篇文章合集

所有博客 .net Framework 源代码 · Ink .net Framework 源代码 · ScrollViewer .net remoting 使用事件 .net remoting 抛出异常...WPF 对比 UWP 开发,需要知道1000个问题 Visual studio C# 代码使用 NotNull visual Studio 无法调试,提示程序跟踪已退出 visual-studio-... win10 uwp 设置 HttpClient 浏览器标识 win10 UWP 访问网页 win10 uwp 读写csv win10 uwp 读写XML win10 uwp 调试软件启动 win10...win10-uwp-应用转后台清理内存 win10-uwp-弹起键盘不隐藏界面元素 win10-uwp-快捷 win10-uwp-截图-获取屏幕显示界面保存图片 win10-uwp-打包第三方字体到应用...给博客添加rss订阅 自动机 解决 vs 出现Error MC3000 给定编码字符无效 解决 VS 跳转定义和 Resharper 重复 解决 Win10 UWP 无法使用 ss 连接 让 AE

10.4K20
  • 从ContentControl开始入门自定义控件

    前言 我去年写过一个在UWP自定义控件系列博客,大部分经验都可以用在WPF(只有一点小区别)。...ContentControl是WPF中最基础一种控件,Window、Button、ScrollViewer、Label、ListBoxItem等都继承自ContentControl。...DefaultStyleKey是用于查找控件样式,没有这句代码控件就找不到默认样式。...在自定义控件添加属性时应尽量使用依赖属性(有些只读属性可以使用CLR属性),因为只有依赖属性才可以作为BindingTarget。WPF创建依赖属性可以做到很复杂,而再简单也要好几行代码。...依赖属性定义代码比较复杂,我一直都是用代码段生成,可以参考我另一篇博客为附加属性和依赖属性自定义代码段(兼容UWPWPF)。 添加依赖属性后再更新控件模板,这个控件就基本完成了。

    3.8K40

    VisualStudio 外部工具配合 dotnet tool 制作复制文件名工具

    我在 VisualStudio ,为了方便沟通,我需要复制当前文件文件名,不包含本地路径,但是我没有找到一个好复制方式,每次都是复制完全路径,然后再删除部分功能。...实现在 VisualStudio 按下某个快捷即可复制当前打开文件文件名到剪贴板功能 在 VisualStudio 中有一个很好用功能是外部命令,外部命令可以使用命令行方式调用其他进程,...这个工具是在 GitHub 上完全开源,请看 https://github.com/lindexi/UWP/ ?...找到外部工具对应项,如上面图片,我设置是第5项,因此找到外部命令5给定快捷 ?...在有 WPF 框架辅助下,才可以使用 Clipboard 类,而其实这个应用没有真的成为一个 WPF 应用,因为只是将 WPF 作为某个库来使用 在输出设置 WinExe 可以让这个控制台在启动时候

    73730

    用 WinUI 3 开发了一个摸鱼应用

    迁移过程需要将大部分 Windows.* 命名空间替换成 Microsoft.*。不过 Win2D 里还在用 Windows.* 命名空间,所以搞得有些混乱。...然后就是引用各种包,微软自己管理 UWP 最常用包大致上都有对应 WinUI 版本,例如 Microsoft.Toolkit.Uwp.UI 替换为 CommunityToolkit.WinUI.UI...(AppWindowPresenterKind.Default); 而且全屏和 UWP 还不一样,没法按 Esc 退出全屏,也没有了屏幕顶部隐藏标题栏。...所以要自己捕获全局 Esc 事件再调用代码退出全屏(至于平板状态怎么退出全屏我就不知道了)。...最后 我记得当年 WinForms、WPF、Silverlight 入门都相当轻松,后面微软各个 UI 越来越难,而 WinUI 3 更是最难一个。

    2.2K30

    .NET 基金会项目介绍-MSBuild

    Nikolai Tillmann 相关链接 开发文档 MSDN 文档 参与讨论 Issues 团队邮箱: msbuild@microsoft.com 笔者简评 MSBuild 作为构建工具是.Net开发重要一环...在日常使用除了使用 VS 一调用 MSBuild 进行生成和发布之外。在编写自动化脚本时也无法离开 MSBuild 调用。...开发者可以自定义 MSBuild Target 任务,实现在代码构建时进行代码生成、自动化调用、输出信息等等各种各样操作。...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit...Telescope - 【宇宙探索工具】 Windows Presentation Foundation WPF - 【客户端开发框架】 Xamarin.Auth - 【移动端身份认证工具库】 Xamarin.Mobile

    79610

    以Button为例谈谈如何模仿Aero2主题

    作为对比我看了看Chrome类似按钮,统一为32像素,看来有很好地执行Material Design"所有距离,尺寸都应该是8dp整数倍"要求(到处都是8,可以说深得中国人欢心)。...顺便拿Button与WPF其它控件、及UWP相同控件做横向对比,使用相同XAML产生UI如上图所示(上为UWP,下为WPF)。...可以看出UWP表单元素基本上完全统一高度,而WPF则根据内容自适应。...WPF为系统环境封装了三个类,用于访问系统环境设置: SystemFonts,包含公开有关字体系统资源属性。 SystemColors,包含与系统显示元素相对应系统颜色、系统画笔和系统资源。...其实我也并不是那么喜欢亲自写动画,只是WPFUWP里连最基本都没提供所以我才在这方面鼓起干劲努力了一把。 4.

    1.2K40

    依赖属性2:使用依赖属性

    注意: Setter不要写其它任何自定义代码这点很重要,如果使用Binding或其它XAML赋值方式,程序并不会使用Setter,而是直接调用SetValue函数赋值。...,可以使用自定义代码段,以下代码段生成就是完整依赖属性定义,快捷是dp: <?...Slider与OneWayBinding"Bug" UWP依赖属性比起WPF有了大幅简化,需要学习地方少了很多,但是功简化了也不一定是一件好事。...在WPF,这个问题并不存在,因为WPF依赖属性可以使用CoerceValueCallback约束属性值,而UWP依赖属性被简化了,缺少这个功能。...RangeBase.cs 这个是Silverlight开源实现Moonlight源码,Moonlight源码对理解UWP、Silverlight都很有参考价值。

    1.4K30

    .NET控件集ComponentOne 2018V3发布:新增图表动画及迷你图

    它通常嵌入在数据网格。因此,FlexGrid 现在可以在列显示迷你图,并可以更容易地在 FlexGrid 单元格绘制趋势图。...winform3.png ​ WinForms Sparkline WPF平台:类似 Office 365 风格功能区 ComponentOne 现在将使用更具现代化功能区样式来改善 WPF 应用程序外观和导航栏...wpf1.png ​ FlexGrid101 sample 全新 C1Icon 功能,为 FlexGrid提供一式操控 ComponentOne 添加了一个新 C1Icon,它为排序、过滤和分组字段以及...xaml4.png ​ XAML Scheduler AgendaView 以上就是ComponentOne Enterprise WinForm 平台和 WPF 平台主要更新点,想了解更多 2018V3...,支持 WinForm,WPFUWP,ASP.NET MVC 等七个 .NET开发平台,具备表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,满足企业 .

    2.5K20

    转 | 从零开始用 dotnet 做全栈开发

    点击工具栏调试->开始调试 或者按下快捷 F5 就可以开始运行 ? 此时运行可以看到控制台输出,没有任何业务功能 现在这个控制台项目是通过 C# 写,接下来就是高级开发了。...现在已经能看到一个空白界面了,在 WPF 写界面推荐用是 xaml 语言,而后台逻辑依然使用 C# 写,展开一个 MainWindow.xaml 文件可以看到 MainWindow.xaml.cs...在这里需要等待时间和你网速有关,不如此时回顾一下上面遇到问题 控制台项目需要从哪个函数开始运行 控制台项目如何将字符串输出到控制台 基础 C# 语法是什么 桌面项目除了 WPF 还有什么 在创建...WPF 项目时说到 .NET Core 和 .NET Framework 是什么 在 WPF 如何画出简单界面 基础 xaml 语法 在 ASP.NET Core 里面控制器是什么 在网页访问对应链接调用...其实本文漏掉还有 WinForms 项目和 UWP 项目等 使用 dotnet 方向进行开发意味着现在基本上任何方向开发都能做,同时社区和工具都非常完善,文档也特别多。

    1.6K20

    从零开始用 dotnet 做全栈开发

    点击工具栏调试->开始调试 或者按下快捷 F5 就可以开始运行 ? 此时运行可以看到控制台输出,没有任何业务功能 现在这个控制台项目是通过 C# 写,接下来就是高级开发了。...现在已经能看到一个空白界面了,在 WPF 写界面推荐用是 xaml 语言,而后台逻辑依然使用 C# 写,展开一个 MainWindow.xaml 文件可以看到 MainWindow.xaml.cs...在这里需要等待时间和你网速有关,不如此时回顾一下上面遇到问题 控制台项目需要从哪个函数开始运行 控制台项目如何将字符串输出到控制台 基础 C# 语法是什么 桌面项目除了 WPF 还有什么 在创建...WPF 项目时说到 .NET Core 和 .NET Framework 是什么 在 WPF 如何画出简单界面 基础 xaml 语法 在 ASP.NET Core 里面控制器是什么 在网页访问对应链接调用...其实本文漏掉还有 WinForms 项目和 UWP 项目等 使用 dotnet 方向进行开发意味着现在基本上任何方向开发都能做,同时社区和工具都非常完善,文档也特别多。

    1.8K20

    如何在UWP中统一处理不同设备间页面回退逻辑

    在本篇缪文中,楼主打算给UWP开发初学者讲述一个在开发中经常遇到很现实问题:页面回退逻辑 。...当我们UWP应用程序运行在不同设备上时,不同设备间页面回退逻辑我们就要考虑周全,要考虑不同设备间页面回退操作该如何设计才能更好满足用户使用需求。...但是当我们UWP应用程序运行在Mobile上时,如果还是用这种方法来进行页面回退的话,对用户来说就可能不是很友好,因此,我们要投其说好,用手机设备上物理后退来实现相应页面回退逻辑,其对应API...在我们用户控件对应后台代码为应用程序全局菜单注册页面跳转事件。...我们还是看一下实际运行效果吧。 ?   这是在PC上运行效果,在手机上运行效果和这类似,但是页面回退是使用物理后退来完成,感兴趣朋友可以自行尝试一下。

    97180

    Linux私房菜:走进bash

    end 移动到指令串最末尾 变量使用 在终端输入,如设定a=b(不能以数字开头,等号两边不能有空格),那么可以使用echo指令取出值b:echo $a,这种设定仅对本次登录有效; 常见环境变量有...$HOME、$PATH等,可用env、set或export命令查找已定义变量; 打印本shellPID:echo $$ 打印上一个指令值:echo $?...output):指令正确执行所回讯息。...-d] file1 file2,以tab分隔将两文件对应每一行合并成一行,-d参数可以指定分隔符 expand [-t] file,将空格转换成对等tab,-t参数可以指定一个tab代表多少个字符...减号用途 减号-可用于连接一些特殊stdin和stdout,像这个文件压缩和解压缩示例:tar -cvf - /home | tar -xvf - -C /tmp/home

    2.5K20

    给你Windows加一个 「文件快速预览」功能

    在macOS,有一个非常好用功能叫做Quick Look,当你在Finder想要查看一个文件时,不需要打开,只需要选中以后按空格即可预览大部分常见文件,Windows虽然没有这样功能(自带预览窗格很浪费资源还很慢...使用帮助: ①QuickLook有三种安装方式,普通安装程序安装、便携版解压即可使用、win10应用商店UWP版(点击图片即可放大) ? 安装版 ? 便携版 ?...UWP ②打开应用以后,没有主界面,会在系统托盘区出现一个托盘,默认开机自启(心甘情愿让他自启吧,很良心) ?...③操作说明: 空格:预览/关闭预览 ESC:关闭预览 回车:运行程序并关闭预览 CTRL+鼠标滚轮:缩放图片/文档 鼠标滚轮:调节音量 ?...—— End ——

    91240

    WPF使用Blazor快速案例

    下面我们将讲解在WPF中使用Blazor,并且使用Blazor做一些文件编辑操作,下面是需要用到东西 WPF Blazor Masa Blazor Monaco 安装Masa Blazor模板 使用...CMD指令安装模板 dotnet new install MASA.Template 新建Masa Blazor WPF App 找到如图模板,然后点击下一步 下一步,新建项目名称FileEditor...// 调用MonacoCommand,传递当前对象,并且指定当触发快捷时候调用当签对象指定方法。...Dispose(); } } 在Index.razor.cs文件我们实现了拦截FullNameset,当被set时候说明上级组件选择了文件并且通过CascadingParameter传递了参数到当前组件...,并且bind-value了value值,我们在cs文件更新了value就自动更新了UI显示值。

    38640

    理解及扩展Expander

    Expander控件是一个ContentControl,它通过IsExpanded属性或者通过点击HeaderToggleButton控制内容展开或隐藏。...UWP SDK没提供这个控件,而是在UWP Community Toolkit 提供 。它是个教科书式入门级控件,代码简单,虽然仍然不尽如人意,但很适合用于学习如何自定义模版化控件。...即使代码量不大,Expander还是将代码分别存放在几个partial class,这样做好处是让承载主要业务文件(Expander.cs)结构更加清晰。...WPFExpanderHeader是个Object,可以方便地塞进各种东西,例如一个CheckBox或一张图片。...另外,在WPFExpander派生自HeaderedContentControl,这就少写了Header、HeaderTemplate、OnHeaderChanged等一大堆代码。

    85320
    领券