我一直在尝试在我的 Metro 应用程序的画布上绘制图像,但到目前为止还没有出现。这是我的代码:
Rectangle blueRectangle = new Rectangle();
blueRectangle.Height = 100;
blueRectangle.Width = 200;
ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("C:\\Users\\Public\\Pictures\\dock.jpg"));
blueRectangle.Fill = imgBrush;
paintCanvas.Children.Add(blueRectangle);
当我使用这条线时
blueRectangle.Fill = new SolidColorBrush(Colors.Blue);
而不是使用 ImageBrush 的那个,我得到了一个我想要的蓝色矩形,所以我想我一定是 ImageBrush 做错了什么。
当我学习如何绘制它们时,我计划将图像用作游戏中的精灵,因此我必须能够使用 c# 来操作它们。
谢谢你的帮助!
编辑:我已更改代码以访问漫游应用程序数据,但我仍然收到未找到文件的异常。(文件在正确的位置)
ApplicationData appData = ApplicationData.Current;
try
{
StorageFile sourceFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/dock.jpg"));
await sourceFile.CopyAsync(appData.RoamingFolder);
}
catch (Exception ex)
{
// If images have already been copied the CopyAsync() methods aboev will fail.
// Ignore those errors.
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
Rectangle blueRectangle = new Rectangle();
blueRectangle.Height = 100;
blueRectangle.Width = 200;
// Create an ImageBrush
ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = new BitmapImage(new Uri("ms-appdata:///roaming/dock.png"));
// Fill rectangle with an ImageBrush
blueRectangle.Fill = imgBrush;
//blueRectangle.Fill = new SolidColorBrush(Colors.Blue);
paintCanvas.Children.Add(blueRectangle);