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

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 に答える
0

問題は、プロジェクトへの相対パスを使用していないことです。メトロ アプリケーションでは、ファイル システムへのアクセス方法が制限されています。これについて私が作成した投稿を参照してください

次のように、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 に答える