alexbtr
alexbtr

Reputation: 3462

Overlay bitmaps (writeablebitmap etc.) in windows store app

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

Answers (1)

Heena
Heena

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

Related Questions