1

我正在尝试通过代码设置网格的背景。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;
}

以下屏幕截图是结果: 上述代码在 WPF 上的结果

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

4

0 回答 0