如何通过C#代码将用作网格背景的图像居中?

时间:2013-08-22 20:56:24

标签: c# wpf

我正在尝试通过代码设置Grid的背景。 网格尺寸为1000 x 1000,与加载的PNG尺寸相同。 我将此PNG加载到Stream中,然后执行以下代码:

using (StreamWrapper wrapper = new StreamWrapper(streamImg))
using (BinaryReader reader = new BinaryReader(wrapper))
{
    originalImage = new BitmapImage();
    originalImage.BeginInit();
    originalImage.CacheOption = BitmapCacheOption.OnLoad;
    originalImage.StreamSource = reader.BaseStream;
    originalImage.EndInit();
    originalImage.Freeze();
}
ib = new ImageBrush() { ImageSource = ConvertToGrayScale(ref originalImage) };
grdQuebraCabeça.Background = ib;


private FormatConvertedBitmap ConvertToGrayScale(ref BitmapImage image)
{
    FormatConvertedBitmap grayImage = new FormatConvertedBitmap();
    grayImage.BeginInit();
    grayImage.Source = image;
    grayImage.DestinationFormat = PixelFormats.Gray32Float;
    grayImage.EndInit();
    return grayImage;
}

以下截图是结果: Result of above code on WPF

您可以在下方和右侧看到黑色块。 我想将图像置于网格中心。 那可能吗?我怎样才能达到这个结果?

0 个答案:

没有答案