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 中图像的大小 的相关文章

  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间
  • 网格内的 ContentPresenter 可见性绑定不起作用?

    我有以下网格
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • VisualStateManager 和生成的转换

    正当我以为我明白的时候VisualStateManager 有些事情证明我错了 我正在使用 WPF 4 并且尝试简单地在鼠标悬停时放大某个项目 并在鼠标离开时将其缩小 我想我只需定义每个状态VisualStateGroup然后指定一个Vis
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 混合 MFC 和 WPF:模态对话框

    我使用 C CLI 界面层将 C WPF 对话框添加到现有的 C MFC 应用程序 我一切正常 只是我遇到了形式问题 例如 MFC 应用程序使用 ShowDialog 显示 WPF 对话框 按预期工作 该 WPF 对话框显示使用 DoMod
  • WPF 绑定 CompositeCollection 中的 MenuItem 不起作用

    我在将命令绑定到复合集合中的菜单项时遇到问题 这MenuItem是其一部分ContextMenu这是定义在UserControl Resources 问题是新标签的绑定不起作用 当我将 MenuItem 放置在复合集合之外时 它将起作用 有
  • WPF ListView/Gridview 允许用户选择多个项目并将它们分组在一起

    我在 MVVM 应用程序中有一个 WPF ListView GridViwe GridView 绑定到 ViewModel 中的列表 要求是用户应该能够选择网格视图的多行 右键单击它并看到上下文菜单 将这些行组合在一起 选择后 所有这些项目
  • 使用 PDFBox 在 PDF 上绘制矢量图像

    我想使用 Apache PDFBox 在 PDF 上绘制矢量图像 这是我用来绘制常规图像的代码 PDPage page PDPage document getDocumentCatalog getAllPages get 1 PDPageC
  • 如何在wpf中翻转图像

    我最近学习了如何使用 TransformedBitmap 和 RotateTransformed 类旋转 BitmapImage 现在我可以对图像进行顺时针旋转 但如何翻转图像呢 我找不到执行 BitmapImage 水平和垂直翻转的类 请
  • 判断位图是否全黑的有效方法是什么?

    我想知道是否有一种超级有效的方法来确认 Image 对象引用全黑图像 因此位图中的每个像素都是 ARGB 255 0 0 0 你会推荐什么 大多数位图的尺寸为 1024 x 6000 像素 尽管假设它们始终是该尺寸并不安全 我需要这个 因为
  • 如何在 WPF 应用程序上执行异步启动?

    我在异步等待方面相当落后 所以这可能是一个 duh 问题 我正在开发一个非常小的 UI 应用程序 它使用以下命令从系统托盘运行WPF 通知图标 http www codeproject com Articles 36468 WPF Noti
  • 使用pdfbox从pdf中提取图像

    我正在尝试使用 pdfbox 从 pdf 中提取图像 示例 pdfhere http www ignou ac in upload questionpaper CS 74 PDF 但我只得到空白图像 我正在尝试的代码 public stat
  • 如何将 .ashx 处理程序与 asp:Image 对象一起使用?

    我有一个 ashx 处理程序 using System using System Web public class Thumbnail IHttpHandler public void ProcessRequest HttpContext

随机推荐

  • 在选择查询中显示行号

    这个查询有什么问题 它在 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 文件 我发现与图像大