我在将图像上传到 UWP 中的 canvas 时遇到问题

I have a problem with uploading the image to the canvas in UWP

在我的 MainPage 中,当我尝试 运行 函数 (ShowEntity) 时,图像不会显示在背景上。 当我 运行 它在我的播放器上时(class 在我的项目中)然后图像不会显示在屏幕上。 我试过几次更改格式,但没有发现问题。 我认为 ShowEntity 函数有问题。

这是我如何尝试让它发挥作用的一个例子。 Player _player1 = new Player(500, 500, 150, 150, "ms-appx:///Asssets/Player5.gif");

    public class Piece
    {
        private double _x;

        private double _y;

        public int _width;

        private int _height;

        public string _image;

        public Image _imagesource { get; set; }

     public Piece(double x, double y, int width, int height, string image)//BitmapImage imagesource)
        {
            _x = x;

            _y = y;

            _image = image;

            _width = width;

            _height = height;

            _imagesource = ShowEntity();           
        }

        private Image ShowEntity()
        {
            Image _img = new Image();

            _img.Source = new BitmapImage(new Uri(_image));

            _img.Height = _height;

            _img.Width = _width;

            Canvas.SetLeft(_img, _x);

            Canvas.SetTop(_img, _y);

            GameManager.MyCanvas.Children.Add(_img);

            return _img;
        }

问题看起来你的图像被其他元素覆盖了,如果你想在Canvas中显示元素,你需要为元素设置ZIndex

Canvas.ZIndex 声明 Canvas 的子元素的绘制顺序。当子元素的任何边界之间存在重叠时,这很重要。较高的 z-order 值将绘制在较低的 z-order 值之上。如果没有设置值,则默认为-1。

如果你想将图像设置为背景,你可以将它的 ZIndex 设置为小值。另一种方法是像下面这样直接用ImageBrush设置Canvas背景。

MyCanvas.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri(this.BaseUri, "ms-appx:///Assets/enemy.png")), Stretch = Stretch.Fill };