gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:25:33 24 4
gpt4 key购买 nike

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

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

enter image description here

注释:

  • 以纯文本形式读取 RTF 文件,我发现与图像大小相关的控制标记是 \picscalex100\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

ResizingAdorner 示例需要一些出色的黑客技术才能满足我的需求,但这是一个很好的开始。

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

关于WPF:允许用户调整 RichTextBox 中图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com