2014-04-02 49 views
0

我有两个图像,现在我想叠加图像,使其他图像出现在另一个图像的中心或左角,然后当两个图像覆盖,我可以将其存储在另一个新的图像对象,我想在代码背后只有不xaml,如何做到这一点?如何重叠图像并将它们存储在新图像对象中

if (((Grid)sender).Children.Count > 0) 
{ 
    gridBackground = (ImageBrush)(((Grid)sender).Background); 
    gridBackImage = new System.Windows.Controls.Image(); 
    gridBackImage.Source = gridBackground.ImageSource; 
} 

System.Windows.Controls.Image imgRejectIcon; 
if (((Grid)sender).Children.Count > 0) 
{ 
    imgRejectIcon = (System.Windows.Controls.Image)(((Grid)sender).Children[0]);  
} 

现在我想合并gridBackImage和imgRejection并将其存储在新的图像对象

回答

0

您可以在任何你想要的方式安排你的两个Image S和我会留给代码为你做(它会更容易在XAML中做)。在WPF中,全部 UI控件扩展Visual class。当与RenderTargetBitmap.Render method一起使用时,这对于从UI控件制作BitmapImage非常有用。

首先,安排你的两个Image控制成Grid,或其他容器控件,然后就可以通过容器控制到RenderTargetBitmap.Render方法,并创建一个Image是这样的:

RenderTargetBitmap renderTargetBitmap = 
    new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32); 
renderTargetBitmap.Render(yourContainerControl); 
PngBitmapEncoder pngImage = new PngBitmapEncoder(); 
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap)); 
using (Stream fileStream = File.Create(filePath)) 
{ 
    pngImage.Save(fileStream); 
} 
相关问题