WPF: Allow user to resize images in RichTextBox

前端 未结 2 1709
我在风中等你
我在风中等你 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!

提交回复
热议问题