2012-12-03 29 views
1

我想放大和缩小Rectangle控件内的图像。但是,当我这样做时,我的整个Rectangle变得放大了,而不是只是里面的图像。为此,我在Rectangle上使用ScaleTransform和TranslateTranform。我应该在图像上做同样的事情而不是矩形,但我不知道如何?任何人都可以帮助我。如何放大矩形内的图像WPF

XAML:

<Rectangle x:Name="LiveViewWindow" Fill="#FFF4F4F5" HorizontalAlignment="Right" 
      ClipToBounds="True" /> 

代码:

InteropBitmap m_LiveViewBitmapSource =Imaging.CreateBitmapSourceFromMemorySection(
    section, width, height, PixelFormats.Bgr32, width*4, 0) as InteropBitmap; 

ImageBrush m_BackgroundFrame = new ImageBrush(m_LiveViewBitmapSource); 

RenderOptions.SetBitmapScalingMode(m_BackgroundFrame, BitmapScalingMode.LowQuality); 

LiveViewWindow.Fill = m_BackgroundFrame; 

N,然后对我使用的Invalidate()属性来呈现InteropBitmap到矩形。

+0

“矩形内的图像”是什么意思?请出示您的XAML。 – Clemens

+0

@Clemens:我已经更新了我的问题。我正在考虑在Invalidate()之前将所有变换应用于我的InteropBitmap。但我不知道该怎么办?互联网上没有可供参考的东西。请帮助我。谢谢。 – user1873915

回答

0

您可以设置ImageBrush的Transform属性。获取更多的信息在Brush Transformation Overview

+0

事情是我从相机处理现场画面。我只分配一次Imagebrush。每当我得到新的框架,我只是在回调函数中调用Invalidate()。所以我必须必须处理InteropBitmap,因为这只在我进行回调时才可用。 – user1873915