0

每次我将图像设置为网格时,图像都不会出现并且出现黑色背景

 private void Clk_Enter(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        ImageBrush myBrush = new ImageBrush();
        BitmapImage bi = new BitmapImage();
        bi.UriSource = new Uri(@"C:\Users\Administrator\documents\visual studio 2012\Projects\HelloWorld\HelloWorld\Images\Backgrounds\wallpaper-2022265.jpg",UriKind.Absolute);
        myBrush.ImageSource = bi;

        mygrid.Background = myBrush;


    }
4

3 回答 3

0

问题是您没有使用相对于您的项目的路径。在 Metro 应用程序中,您访问文件系统的方式受到限制。请参阅我在此处发表的关于此的帖子。

您可以像这样在 Xaml 中使用项目相对 URI:

<!--Relative To Project-->
<Image Margin="5" Source="/Images/favicon.ico" Height="100"/>

或在这样的代码中:

bi.UriSource = new Uri("/images/wallpaper-2022265.jpg",UriKind.Relative);
于 2012-09-07T14:54:09.483 回答
0

您需要在设置 UriSource 之前调用 BitmapImage.BeginInit(),然后再调用 BitmapImage.EndInit()。

ImageBrush myBrush = new ImageBrush();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(@"C:\Users\Administrator\documents\visual studio 2012\Projects\HelloWorld\HelloWorld\Images\Backgrounds\wallpaper-2022265.jpg", UriKind.Absolute);
bi.EndInit();
myBrush.ImageSource = bi;

mygrid.Background = myBrush;
于 2012-09-07T13:46:41.953 回答
0

我找到了答案只需在 URI 之前添加:“ms-appx”

ImageBrush myBrush = new ImageBrush();
 BitmapImage bi = new BitmapImage();

 bi.UriSource = new Uri("ms-appx:/images/wallpaper-2022265.jpg",UriKind.Absolute);

 myBrush.ImageSource = bi;

  mygrid.Background = myBrush;
于 2012-09-07T14:50:10.130 回答