网格变黑

时间:2012-09-07 13:26:16

标签: wpf windows-8

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

 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;


    }

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;

答案 2 :(得分:0)

问题是您没有使用相对于项目的路径。在metro应用程序中,您访问文件系统的方式受到限制。查看我对此here

的帖子

您可以在Xaml中使用项目相对URI,如下所示:

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

或像这样的代码:

bi.UriSource = new Uri("/images/wallpaper-2022265.jpg",UriKind.Relative);