WPF: Allow user to resize images in RichTextBox

前端 未结 2 1693
我在风中等你
我在风中等你 2021-01-01 04:55

Is there a method within the RichTextBox control in WPF to allow for the user to resize inserted images, or do you have to devise your own method for this.

What I\'m

相关标签:
2条回答
  • 2021-01-01 05:10

    Turns out you need to wrap your image in a ResizingAdorner.

    A beautiful and simple implementation of this code can be found at http://msdn.microsoft.com/en-us/library/ms771714%28loband%29.aspx by Marco Zhou (second post).

    The code for this ResizingAdorner is available as an MSDN sample at http://msdn.microsoft.com/en-us/library/ms771714%28loband%29.aspx

    Here's a VB.net equivalent of the code I am now using

    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 sample will require some great hacking to meet my needs, but what a great start.

    Hope someone else finds this useful!

    0 讨论(0)
  • 2021-01-01 05:17

    Maybe copy image to Paint and resize accordingly and then post to the RichTextBox in VB6. Images posted directly to VB6 tend to get distorted. Any image copied from Paint to VB6 is pasted as it was in Paint. I found this out when copying from a PDF image to a RichTextBox.

    0 讨论(0)
提交回复
热议问题