WPF:允许用户调整 RichTextBox 中图像的大小

2023-12-08

WPF 中的 RichTextBox 控件中是否有一种方法允许用户调整插入图像的大小,或者您是否必须为此设计自己的方法。

我想要实现的目标如下所示,是写字板执行我想要的操作的屏幕截图:

enter image description here

Notes:

  • 以纯文本形式读取 RTF 文件,我发现与图像大小相关的控制标签是\picscalex100 and \picscaley100(其中 100 表示缩放至 100%)。

那么是的,有没有适当的方法或技巧呢?关于如何进行编程有什么建议吗?或者我完全看错了控件?


结果你需要将你的图像包裹在一个ResizingAdorner.

可以在以下位置找到此代码的漂亮且简单的实现http://msdn.microsoft.com/en-us/library/ms771714%28loband%29.aspx作者:Marco Zhou(第二篇文章)。

这个的代码ResizingAdorner可以作为 MSDN 示例获取,网址为http://msdn.microsoft.com/en-us/library/ms771714%28loband%29.aspx

这是我现在使用的代码的 VB.net 等效项

Dim img As Image
Sub AddImg() Handles btnAddImage.Click
    Dim dlg As New Microsoft.Win32.OpenFileDialog
    dlg.Filter = "Image Files(*.*) | *.*"
    If dlg.ShowDialog Then
        img = New Image
        AddHandler img.Loaded, AddressOf imgloaded
        img.Source = New BitmapImage(New Uri(dlg.FileName, UriKind.Absolute)) With {.CacheOption = BitmapCacheOption.OnLoad}
        Dim container As New BlockUIContainer(img)
        rtb.Document.Blocks.Add(container)
    End If
End Sub

Private Sub imgloaded(ByVal sender As Object, ByVal e As Windows.RoutedEventArgs)
    Dim al As AdornerLayer = AdornerLayer.GetAdornerLayer(img)
    If Not (al Is Nothing) Then
        al.Add(New SDKSample.ResizingAdorner(img))
    End If
End Sub

The ResizingAdorner示例将需要一些伟大的黑客才能满足我的需求,但这是一个多么好的开始。

希望其他人发现这很有用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF:允许用户调整 RichTextBox 中图像的大小 的相关文章

  • WPF - 防止用户操作在应用程序繁忙时排队

    当应用程序繁忙时 意味着 UI 线程被阻止执行某些操作 您建议采用什么方法来忽略用户请求 例如鼠标单击 具体的例子可能是网格控件的排序 如果我们说排序很慢 那么在操作运行时 我想忽略额外的用户点击 这些点击会堆积并多次执行操作 除了诉诸禁用
  • 具有参数化构造函数的 Wpf 用户控件

    我们正在使用 Microsoft Unity 和依赖项注入 因此我们为用户控件提供了参数化构造函数 如何使用 XAML 将此依赖项注入到用户控件中 我已在 XAML 中添加了用户控件 如下所示 xmlns usrRefundArrivalP
  • 文本框和默认按钮绑定更新得太晚了

    我有一个带有这两个控件的简单 WPF 对话框
  • 有没有办法为 CSS3 边框图像的每一侧使用不同的图像?

    在 Firefox 和 Safari 上 我可以通过以下 CSS 使用图像作为边框 moz border image url shadow left png 0 7 0 7 round round webkit border image u
  • 更换桌面壁纸/在桌面上绘制

    我想对我的 Windows 桌面进行一些自定义绘图 以便它看起来可以替换桌面背景 壁纸 我的第一次尝试是获得 DCdesktopListView并绘制它 IntPtr desktopDC GetWindowDC desktopListVie
  • WPF ListView - 检测何时单击所选项目

    我正在使用 WPF ListView 控件 它显示数据绑定项的列表
  • XAML - 带有触发器/参数的通用文本框样式?

    我希望能够拥有一个通用样式模板 可以根据布尔值切换文本框的颜色 但我不想为每个文本框创建独特的样式 我该怎么做呢 我在下面放置了一些示例代码 我希望它如何工作 三个文本框 均具有不同的绑定 但尝试使用相同的模板基于布尔值选择红色或绿色 Th
  • 在 WPF 中处理第二个 UI 线程

    我有一个长时间运行的进程在我的 UI 线程上运行 我无法离开 UI 线程 相反 我尝试创建第二个具有等待动画的 UI 线程 这是我用来创建第二个 UI 线程的代码 Private busyThread As Thread Private w
  • Doxygen:空详细说明

    Context 用于生成 RTF 文档的 C 代码的 Doxygen 工具 在模块 组的文档中 即使没有为某些特定模块 组提供详细描述 我们也会获得标题 详细描述 在生成的 RTF 文档中 这看起来很难看 是否可以去掉这个空的详细描述部分
  • Javascript 像素操作:这些不是我的颜色

    我知道类似的问题已经被问过好几次了 但我还没有找到我想要的东西 我正在将图像读入画布对象 在 JavaScript 中 并尝试操作一些特定的像素 例如 我正在寻找颜色 RGB 224 64 102 并尝试将其更改为其他颜色 我可以将灰度应用
  • WPF 按钮单击事件不起作用

    我有一个按钮 其中包含网格内的图像 我的问题是我无法制作该按钮Click活动工作 我的 XAML 代码
  • Go 中的 WebP 编码器/解码器

    是否有一个完整的 WebP 编码器和解码器与当前每周 或可分叉 兼容 它的速度与标准 png 相当吗 这个人在 GitHub 上有一个包 其中包含 WebP 的编码器和解码器 https github com chai2010 webp h
  • 行为和视图模型在 MVVM 中如何关联?

    所以我在学习MVVM的时候偶然发现了一个问题 我有一个包含 TextBlock 的 TreeView 当我双击 TreeView 中的任何 TextBlock 时 我想对其执行操作 我开始学习行为 并且我有一个很好的示例来说明如何实现行为
  • 在上传过程中调整网页中的图像大小和优化图像的最佳类是什么?

    我正在寻找一个类 使用 C 来检查我的图像尺寸 宽度和高度 或以 kb 为单位的图像尺寸 如果它们与我最喜欢的尺寸不匹配 请调整它们的大小 意味着使用 Constrain 和相对宽度和高度 new大小就像 Photoshop 中的图像大小
  • 为什么 System.AppDomain.CurrentDomain.BaseDirectory 返回不同的结果?

    我将数据库的路径 包含一些 xml 文件的文件夹 存储在 app config 中 在启动时 我检查路径是否存在 如果不存在 我想将路径设置为默认路径 代码如下所示 public void CheckAndRepairSettings Ch
  • .php 随机图像在外部站点上作为 .jpg

    我发布的论坛只允许从外部 URL 加载 jpg png 和 gif 图像 我想解决这个问题 并从服务器上的目录中随机选择一个动态头像 但我无法使其正常工作 可能是由于在外部站点上执行了额外的检查 或者我的代码中存在错误 到目前为止 我已经在
  • 使用 Angular JS ng-src 的后备(默认)图像

    我正在尝试使用从模式返回的数据设置图像源 这是在 ng repeat 循环内 div div span table tr td class imgContainer img td tr table span div div
  • WPF 中的数据绑定?

    我正在尝试在 WPF 中设置数据绑定 我有班级人员 它通过一个文本框进行更新 类似老式的 另一个文本框应该通过数据绑定镜像对人员对象的更改 它曾经是 type twoway 但抛出了xamlparse 异常 它不是这样工作的 点击显示 pe
  • 如何在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标单击?

    是否可以在不侦听框架控件中定义的任何鼠标事件的情况下检测鼠标单击 我的意思是 我不想编写如下代码 control MouseLeftButtonDown this HandleMouseLeftButtonDown 但我想知道用户是否点击屏
  • 如何在Android中将位图转换为PNG,然后转换为base64?

    正如标题所暗示的 我试图让我的 Android 应用程序的用户从他的设备中选择一个图像 完成 然后我想缩小图像 完成 将图像压缩 转换为 png 并发送它作为 Base64 字符串发送给 API 所以我目前调整图像大小 如下所示 optio

随机推荐

  • 在选择查询中显示行号

    这个查询有什么问题 它在 rowno 列中显示 null SELECT rowno rowno 1 rn id title topic FROM stories SELECT rownum 0 r WHERE newstype 2 我在 M
  • Networkx问题:需要安装Graphviz / Pygraphviz(Anaconda 2021.11,WIN10x64)

    我在用着Jupyter Notebook进行图形分析 我需要使用Networkx要生成 MultiDiGraph 我需要将其绘制为树 但出现错误 from networkx drawing nx agraph import write do
  • gdb python:遍历结构数组

    我们不能遍历结构体数组吗 我的意思是对于每个索引 通过检查结构的内容并相应地打印每个字段 正如我们可以对这样的结构做的事情 s gdb parse and eval expr for k in s type keys v s k if is
  • 提取二进制矩阵中值为 1 的列名称

    我有个问题 我想从结构如下的二进制矩阵开始创建一个新矩阵 A B C D E F G 0 0 1 1 0 0 H 0 0 0 1 1 0 I 0 0 0 0 1 0 L 1 1 0 0 0 0 我想创建一个新矩阵由起始行的行名称和一个名为
  • WP7 - 根据设置动态更改启动页面

    是否可以根据 Windows Phone 7 应用程序中的设置更改启动页面 例如 一个有 2 个页面的应用程序 比如说电影和新闻 我希望用户能够在启动应用程序时选择他们想要首先显示的两个页面中的哪一个 现在 我试图通过在启动时导航到正确的页
  • 显示表行如何表现得像 colspan=3

    我需要两行 第一行有 3 列 第二行我需要跨越所有宽度 就像td colspan 3会做 或者显示 table cell 行为类似于 colspan 3 我在用display table row width 100 如何做呢 这是我的CSS
  • 无法将自定义标头从 WebAPI 公开给客户端

    我编写了一个程序来下载 web api 返回的 pdf word 或 txt 文件 并且工作正常 在服务器端我使用了 WebApi 和客户端 AngularJs 现在的问题是 我还需要来自 api 的文件名 为此我需要读取 api 返回的标
  • JSON 和 JSONP 有什么区别?

    格式明智 文件类型明智和实际用途明智 JSONP 是带填充的 JSON 也就是说 您在开头放置一个字符串 并在其周围放置一对括号 例如 JSON name stackoverflow id 5 JSONP func name stackov
  • AWS RDS 的 Mysqldump

    我想备份 RDS MYsql 数据库 我目前正在运行一个小实例 我需要程序来获取 sqldump 但我的问题是 RDS 在获取 sqldump 时是否会冻结 因为在其生产过程中会发生大量读 写操作 请帮忙 要回答确切的问题 获取 sqldu
  • 如何通过浏览器检测某个协议是否受支持?

    类似于 iTunes 的 链接制作器 http www apple com itunes linkmaker faq 通过网络浏览器 iTunes 网页能够查明是否itms 已在客户端工作站上注册 因此显示正确的消息 在 iTunes 中查
  • Worker 服务意外停止工作

    我有 NET Core 3 辅助服务 每 10 秒检查 一些内容 有一次 它 随机 停止这样做 我不确定为什么 到目前为止 它发生了两次 并且没有异常日志或类似的东西 所以我只能假设我应该添加一个try catch在 ExecuteAsyn
  • Android 2.3 设备上的 Android MediaPlayer 错误 (1, -38)

    最近被分配一个任务 开发一个 Android 应用程序 通过 WiFI 播放 RTSP 流 该应用程序在 SurfaceView 上使用 Android MediaPlayer 类 相同的代码适用于 Android 4 2 4 3 和 4
  • 为什么 FileWriter 不创建新文件?

    考虑以下代码 m Writer new PrintWriter new FileWriter LoginHistory dat m Writer println Integer toString s NumOfLogins m Writer
  • 如何在 ASP.NET 中从 JavaScript 触发按钮单击事件

    如何从 JavaScript 触发服务器端按钮单击事件 我尝试这样 document getElementById click 但没有用 我该怎么做 您可以将此行放在 JavaScript 函数中 doPostBack btnSubmit
  • DispatcherTimer - 如果上一个刻度仍在运行,则防止触发刻度事件

    在 Silverlight 应用程序中 我有一个代码块必须每 500 毫秒运行一次 我计划使用 DispatcherTimer 来实现此目的 请参阅下面的代码 DispatcherTimer dt new DispatcherTimer d
  • Visual Studio 更新是否会破坏 iText7?

    我在使用 iText7 7 1 6 和 Visual Studio 2019 时遇到问题 我的程序已经运行一年了 但刚刚将 Visual Studio 社区 从 16 6 1 更新到版本 16 6 2 我进行了重建 但没有更改任何内容 现在
  • Plupload HTML4 添加文件对话框在 IE 中未触发

    我正在使用 Plupload jQuery 版本 和 HTML4 for IE 由于某种原因 当我按下 添加文件 按钮时 它没有打开文件对话框 Plupload 容器被放置在一个对话框中 我调用 pluploadQueue 每次在我显示对话
  • 如何在 iOS 中计算 SHA-2(最好是 SHA 256 或 SHA 512)哈希值?

    安全服务 API 似乎不允许我直接计算哈希值 有很多公共领域和自由许可的版本可用 但如果可能的话 我宁愿使用系统库实现 数据可以通过 NSData 或普通指针访问 哈希的加密强度对我来说很重要 SHA 256 是可接受的最小哈希大小 这就是
  • 用于打印括号内整数的正则表达式

    第一次使用正则表达式 尽管 stackoverflow 中已经有很多例子 但无法让它工作 如何提取括号内字符串中的整数 Example dijdi d43 d5 55 43 32 dm dij 99 x 会回来 43 32 99 and 如
  • WPF:允许用户调整 RichTextBox 中图像的大小

    WPF 中的 RichTextBox 控件中是否有一种方法允许用户调整插入图像的大小 或者您是否必须为此设计自己的方法 我想要实现的目标如下所示 是写字板执行我想要的操作的屏幕截图 Notes 以纯文本形式读取 RTF 文件 我发现与图像大