When my program displays an image which is smaller than the Image GUI object defined in XAML, it does not get stretched to fit as I would like it to. For example a 256x256
I have a few comments on your code:
And in your XAML you name your image:
imagePanel1
and in codebehind you used:
image
In the image tag in the XAML you said:
Canvas.Left="-135" Canvas.Top="-32"
This image tag is not in a canvas,, it is in a grid.
In the code behind you use the dispatcher to make things use multiple cores?
The dispatcher is used to execute thing from other threads into the UI thread. And if image (from which you use the dispatcher) is also in the UI thread (what I guess it is since it is a UI object) then this wont make your application use multiple cores.
If you set the image margin to 0 and remove the horizontal and vertical alignment. Also remove the width and height. Then your image should completely fill your window.
Can you test this for me.
And you can always use and Uri to set the bitmapsource to the file on your system.
BitmapImage bi3 = new BitmapImage();
bi3.BeginInit();
bi3.UriSource = new Uri("smiley_stackpanel.PNG", UriKind.Relative); //instead you can also use Urikind.Absolute
bi3.EndInit();
imagePanel1.Stretch = Stretch.Fill;
imagePanel1.Source = bi3;