每次我将图像设置为网格时,图像不会出现,并出现黑色背景
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;
}
答案 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);