Reputation: 3462
I have 2 bitmaps (foreground and background) which I need to overlay on top of each other to form a new bitmap and use it as the ImageBrush for a button. The code would look something like this (Windows 8.1 store app):
WriteableBitmap foregroundBitmap = GetForegroundBitmap();
WriteableBitmap backgroundBitmap = GetBackgroundBitmap();
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = Overlay(foregroundBitmap, backgroundBitmap);
Button button = new Button();
button.Background = imageBrush;
How can I implement the Overlay(...) method above?
I tried:
backgroundBitmap.Blit(
new Rect(0, 0, backgroundBitmap.PixelWidth, backgroundBitmap.PixelHeight),
foregroundBitmap,
new Rect(0, 0, foregroundBitmap.PixelWidth, foregroundBitmap.PixelHeight),
WriteableBitmapExtensions.BlendMode.None);
but it didn't work (with BlendedMode None or Additive).
Thanks.
Upvotes: 1
Views: 369
Reputation: 8654
Try this
<Window.Resources>
<BitmapImage x:Key="image1" UriSource="DefaultImage.png"></BitmapImage>
<BitmapImage x:Key="image2" UriSource="ImageRoation.png"></BitmapImage>
</Window.Resources>
<Button Height="200" Width="200">
<Grid Height="200" Width="200">
<Grid.Background>
<ImageBrush ImageSource="{StaticResource image1}" Stretch="Fill" ></ImageBrush>
</Grid.Background>
<Grid Margin="5" Width="50" Height="50">
<Grid.Background>
<ImageBrush ImageSource="{StaticResource image2}" Stretch="Fill"></ImageBrush>
</Grid.Background>
</Grid>
</Grid>
</Button>
Upvotes: 0