none
C++中Image图片显示问题 RRS feed

  • 问题

  • 定义了如下代码:

    BitmapImage^ bitmapImage =ref new BitmapImage();
     Image image1;
     bitmapImage->UriSource =ref new Uri(Package::Current->InstalledLocation->Path + "/Images/" + "1.png");
     image1.Source = bitmapImage;

    在不借助Image控件的情况下,我想把image1显示到界面上应该怎么做呢?(就是想把文件夹Images下的1.png图片在不借助Image控件的情况下显示到界面上)

    是否可以使用image1.Margin的属性来控制image1的位置呢?但是我怎么能给Margin赋值呢?请高手帮个忙,多谢!

    2012年6月7日 6:54

答案

  • 这个属性是根据你不同的语言环境来指定其文本或者UI内容的流动方向的,你知道有些语言环境比如阿拉伯文里面文字都是从右至左的,所以才需要这个属性。而和你的更新图片的方向没有任何关系。他肯定会有一个值,不是从左到右就是从右到左。你即不能设为空,也没有改变ListView更新图片的方向性。

    更新图片的方向是由ListView 模板内部的Transform决定的,

          <AddDeleteThemeTransition/>
          <ContentThemeTransition/>
          <ReorderThemeTransition/>
          <EntranceThemeTransition IsStaggeringEnabled="False"/>

    所以我们可以选择性的选择几个保留或者全部去掉:

            <ListView>
               ......
                <ListView.ItemContainerTransitions>
                    <TransitionCollection>
                        <!--<AddDeleteThemeTransition/>-->
                        <ContentThemeTransition/>
                        <ReorderThemeTransition/>
                        <EntranceThemeTransition IsStaggeringEnabled="False"/>
                    </TransitionCollection>
                </ListView.ItemContainerTransitions>
            </ListView>

    设为NULL:

            <ListView ItemContainerTransitions="{x:Null}">
            </ListView>


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

    • 已标记为答案 JJ李锋 2012年6月11日 12:43
    2012年6月11日 10:04
    版主

全部回复

  • 我这样其实算是载入图片了,除了用Image控件之外,只能用D2D么?没有其他方法了?
    2012年6月7日 7:04
  • ImageBrush, fill一个Rectangle。

    <Rectangle>
      <Rectangle.Fill>
        <ImageBrush ... />
      </Rectangle.Fill>
    </Rectangle>
    

    Margin Thickness 类型,这样就行了
       element.Margin = new Thickness(...);


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

    2012年6月8日 6:01
    版主
  • 多谢BobBao,不要闲我烦啊,呵呵,我还有个问题,我现在用ListView实现多个图片显示,并且可以按键更新图片,但是遇到个问题如下图

      ListView.FlowDirection 属性只能是这2个选项,我想把这个属性置位空可以么,我不想要这个效果,

    看着晃眼。

    2012年6月8日 9:38
  • 这个属性是根据你不同的语言环境来指定其文本或者UI内容的流动方向的,你知道有些语言环境比如阿拉伯文里面文字都是从右至左的,所以才需要这个属性。而和你的更新图片的方向没有任何关系。他肯定会有一个值,不是从左到右就是从右到左。你即不能设为空,也没有改变ListView更新图片的方向性。

    更新图片的方向是由ListView 模板内部的Transform决定的,

          <AddDeleteThemeTransition/>
          <ContentThemeTransition/>
          <ReorderThemeTransition/>
          <EntranceThemeTransition IsStaggeringEnabled="False"/>

    所以我们可以选择性的选择几个保留或者全部去掉:

            <ListView>
               ......
                <ListView.ItemContainerTransitions>
                    <TransitionCollection>
                        <!--<AddDeleteThemeTransition/>-->
                        <ContentThemeTransition/>
                        <ReorderThemeTransition/>
                        <EntranceThemeTransition IsStaggeringEnabled="False"/>
                    </TransitionCollection>
                </ListView.ItemContainerTransitions>
            </ListView>

    设为NULL:

            <ListView ItemContainerTransitions="{x:Null}">
            </ListView>


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

    • 已标记为答案 JJ李锋 2012年6月11日 12:43
    2012年6月11日 10:04
    版主
  • 哦,了解了,十分感谢BobBao,麻烦了。
    2012年6月11日 12:43