Оказывается, вам нужно обернуть изображение в ResizingAdorner
.
Прекрасная и простая реализация этого кода может быть найдена Марко Чжоу в http://msdn.microsoft.com/en-us/library/ms771714%28loband%29.aspx (второй пост).
Код для этого 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
потребует большого взлома, чтобы удовлетворить мои потребности, но какое прекрасное начало.
Надеюсь, кто-то еще найдет это полезным!