none
关于在Metro的C++该页里随便位置显示图片的问题 RRS feed

  • 问题

  • 请问在Metro的C++中创建了一个基本页,是否在不用Image等等任何控件的情况下,可以在该页里随便位置显示图片。该图片在以下位置

    还有一个问题,我想给单个Image控件更换图片,如何用代码显示,以下代码为什么不行呢?

    Platform::Collections::Vector<Object^>^ pictures;
    pictures = ref new Platform::Collections::Vector<Object^>();
    pictures->Append ("image1.png");
    LogoImage->Source = pictures->Append;  //LogoImage是Image控件的name

    貌似原因是pictures定义的有问题?

    2012年6月1日 2:58

答案

  • 多谢BobBao,我已经知道怎么做了,给新学者来个提示吧,如下写法:

    在.c文件中写如下code:

      BitmapImage^ bitmapImage2 =ref new BitmapImage(); 
      bitmapImage2->UriSource =ref new Uri(Package::Current->InstalledLocation->Path + "/Assets/" + "111.png");  //""/Assets/" + "111.png""是图片的路径
     HallImage->Source = bitmapImage2;   //HallImage是Image控件的name

    库文件:

    using namespace Windows::UI::Xaml::Media::Imaging;
    using namespace Windows::ApplicationModel;

    这样就可以实现文件夹里的图片,通过后台代码的方式显示在界面中了。

    • 已标记为答案 JJ李锋 2012年6月5日 9:53
    2012年6月5日 9:53

全部回复

  • pictures是个集合,你往这个集合中添加了一个元素,你要将这个元素再使用赋值给Image控件,请 用例如 GetAt 方法, pictures[i] 方式去拿到你加进去的元素, 然后还是构造一个BitmapImage后才可以赋值给Image->Source。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月1日 7:45
    版主
  • 谢谢!你说的方法看懂了,但是操作起来有点小问题,pictures[i]的方式不支持吧,我是想取集合的一个元素(图片),但是方法不知道。

    2012年6月1日 8:37
  • 谢谢!你说的方法看懂了,但是操作起来有点小问题,pictures[i]的方式不支持吧,我是想取集合的一个元素(图片),但是方法不知道。

    pictures->GetAt(i); 

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月1日 9:18
    版主
  • 谢谢!嗯,我用了这个

    for (int i = 0; i < 2; i++)
     {
      ImageTest->Source = pictures->GetAt(i); 
     }但是这样子是不可以的,好像类型不匹配不能这么赋值,而且我怎么能知道pictures的长度呢,没有像java的那种*.length的属性么?

    2012年6月1日 9:25
  • pictutes.Size 就是长度. 文档中你可以看到说明

    还有,看我的第一个回复,你需要构造BitmapImage才可以赋给Image.Source 


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月1日 9:55
    版主
  • 谢谢,不过我不会使用 BitmapImage这个方法,能给个例子么?还有我想在C++中实现如何在后台给Image控件赋值呢?
    2012年6月5日 3:58
  • BitmapImage方法我已经会使用,但是C++中不支持该方法,那我该如何给Image控件赋值呢
    2012年6月5日 6:25
  • 多谢BobBao,我已经知道怎么做了,给新学者来个提示吧,如下写法:

    在.c文件中写如下code:

      BitmapImage^ bitmapImage2 =ref new BitmapImage(); 
      bitmapImage2->UriSource =ref new Uri(Package::Current->InstalledLocation->Path + "/Assets/" + "111.png");  //""/Assets/" + "111.png""是图片的路径
     HallImage->Source = bitmapImage2;   //HallImage是Image控件的name

    库文件:

    using namespace Windows::UI::Xaml::Media::Imaging;
    using namespace Windows::ApplicationModel;

    这样就可以实现文件夹里的图片,通过后台代码的方式显示在界面中了。

    • 已标记为答案 JJ李锋 2012年6月5日 9:53
    2012年6月5日 9:53