none
第一次进入应用加载背景图片闪烁一下,怎么解决 RRS feed

  • 问题

  • 把图片设置成内容,然后引用会闪烁一下,猜测是这里设置的问题,然后设置成潜入的资源,怎么引用啊在xaml中
    <ImageBrush ImageSource="ms-appx:/Assets/Test/bg.jpg" Stretch="UniformToFill" />
    这样显示不出来,正确的写法是?
    2012年10月18日 9:22

全部回复

  • 正确写法:ms-appx:///Assets/Test/bg.jpg

    你的写法少了2个“/”


    Thanks! Damon.Tian

    2012年10月18日 10:15
  • 写成   <ImageBrush ImageSource="ms-appx:///Assets/Test/bg.jpg" Stretch="UniformToFill" />还是显示不出来

    如果设置成内容就可以。

    2012年10月18日 10:49
  • 你的ImageBrush是作为哪个元素的背景使用的?

    能给出更多的你的Xaml的代码吗?


    Thanks! Damon.Tian

    2012年10月18日 11:32
  • 另外, 图片作为作为Content输出就可以.


    Thanks! Damon.Tian

    2012年10月18日 11:44
  • 根目录的Grid

    <Grid >
            <Grid.Background>
                <ImageBrush ImageSource="ms-appx:///Assets/Test/bg.jpg" Stretch="UniformToFill"/>
            </Grid.Background>

    如果设置成Content是可以出来,我现在的问题是,设置成Content时第一次进入应用背景加载会有延迟,会先出现黑色背景,然后才加载背景图片,导致闪烁一下

    我猜测和BuildAction有关,所以就设置成了Resource,但在xaml中引用却不能输出,求正确的书写方式。

    ”复制到输出目录“这个属性设置成如果较新则复制,不知是否有影响。

    2012年10月19日 3:49
  • 图片加载是有延迟,修改buildAction对图片加载没什么关系。

    你的图片很大么?一般感觉不到这个延迟的。

    另外确认下,你先出现的黑色背景不是SplashScreen吧?

    所有App都是先出现SplashScreen才到你的主界面。


    Thanks! Damon.Tian

    2012年10月19日 6:40
  • SplashScreen不是黑色背景的,图片有200kb。

    在wp上如果背景图片设置成内容的话会出现这个问题,闪烁一下,如果设置成资源就不会,因为资源文件是在dll中的。

    想知道如果BuildAction设置成“嵌入的资源”xaml怎么引用,正确的书写方式是什么?

    2012年10月19日 6:51
  • ms-appx:///引用的是BuildAction为Content的内容,不要设置BuildAction为 Resource.

    如果是嵌入资源,就需要用代码去读取了,例如下面:

    var s = Assembly.Load(new AssemblyName("your project")).GetManifestResourceStream(@"xxx.jpg");
    StreamReader sr = new StreamReader(ts);
    ...


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

    2012年10月19日 7:13
    版主
  • 我自己的应用用了SpalshScreen 延时,然后在App.xaml中放了一个

    <ImageBrush x:Name="appBackground" ImageSource="ms-appx:///appbg.jpg" Stretch="UniformToFill"/>

    在主页面 reference:

    <Grid Style="{StaticResource LayoutRootStyle}" Background="{StaticResource appBackground}">


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

    2012年10月19日 7:16
    版主
  • Hi Bob,
     我也是按照你的那种写法写的,你所说的SpalshScreen延时是怎么做到的,怎么知道图片已经加载完毕?
    2012年10月19日 7:28
  • 延时并不是处理这个图片加载的,而是处理一些大数据量的准备的 ,文档这里: http://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/Hh868191(v=win.10).aspx

    例子:http://code.msdn.microsoft.com/windowsapps/Splash-screen-sample-89c1dc78/

    我的例子:https://skydrive.live.com/#cid=51B2FDD068799D15&id=51B2FDD068799D15%211108


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

    2012年10月19日 8:28
    版主
  • Bob,我的背景图片有200多kb,进入应用后会有一个图片加载的过程,导致屏幕背景是黑色的然后背景图片被加载了出来,书写和你的是一致的,没什么问题,请问怎么解决这个问题,谢谢!

    2012年10月22日 2:55
  • 200kb 且是本地图片,不会有个明显加载过程,应该是很快的。

    不过,你要避免性能上的 问题造成明显的加载过程,你只有预先加载了。比如在SplashScreen 先显示此图片,然后再与页面中显示则加载可以更快 (使用了缓存)。


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

    2012年10月22日 9:55
    版主