xaml文档中
        <Grid.Background>
            <ImageBrush ImageSource="/Infrastructure;component/login.jpg" Stretch="None" />
        </Grid.Background>为什么这行脚本在某些计算机上会很慢了。又并不是全部,感到特别的奇怪,请大伙帮忙解决。
万分感谢!!!

解决方案 »

  1.   

    哎 我晕 字没发上去Stretch="None" 表示不进行缩放,是原图大小显示但是由于,WPF 的图像处理与设备无关,所以图片在不同设备上显示是有差异所以 1、最好定义图片尺寸 2、Stretch="Fill" / Stretch="UniformToFill"当然根据 Layout 的定义规则,你可以不设置 Background,而直接使用<Grid>
        <Image Source="" Width="" Height=""/>
    </Grid>
      

  2.   

    我改成了fill,还是需要15秒钟。
    我再试试,你下面的方案。
      

  3.   

    兄弟,还是不行,还是需要15秒钟,才能够完成image的loading,不晓得什么原因。继续奇怪中...
    您是否还有其它的高招呢?呵呵!!!
      

  4.   

    1,Stretch
    2,或是服务器问题,你是用iis发布,别人登录的?
      

  5.   

    尽是wpf客户端应用,现在改成如下方式,还是慢:
                BitmapImage logo = new BitmapImage();
                logo.BeginInit();
                logo.UriSource = new Uri(AppDomain.CurrentDomain.BaseDirectory+ "\\ login.jpg");
                logo.EndInit();
                
                this.image1.Source = logo;

    logo.UriSource = new Uri(AppDomain.CurrentDomain.BaseDirectory+ "\\ login.jpg");
    执行需要15秒钟左右。
    比较寒啊!!!
      

  6.   

    现在代码修改成如下:
    BitmapImage logo = new BitmapImage();
                logo.BeginInit();            Logger.Write("Updating: ", "Url Start...");
                Uri url = new Uri(AppDomain.CurrentDomain.BaseDirectory + "\\login.jpg");
                Logger.Write("Updating: ", "Url End");            Logger.Write("Updating: ", "UriSource Start...");
                logo.UriSource = url;
                Logger.Write("Updating: ", "UriSource End");            Logger.Write("Updating: ", "EndInit Start...");
                logo.EndInit();
                Logger.Write("Updating: ", "EndInit End");            Logger.Write("Updating: ", "image1.Source Start...");
                this.image1.Source = logo;
                Logger.Write("Updating: ", "image1.Source End");
    实际是logo.EndInit(); 需要15秒钟的时间,仅仅是发生在某些计算机上,请朋友们帮忙。
      

  7.   

    谢谢各位帮忙,我自己已经搞定了,告诉大家啊!!!
                
                Logger.Write("Updating: ", "UriSource Start...");
                logo.UriSource = url;
                logo.CacheOption = BitmapCacheOption.None;
                logo.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
                Logger.Write("Updating: ", "UriSource End");            Logger.Write("Updating: ", "EndInit Start...");
                logo.EndInit();
                Logger.Write("Updating: ", "EndInit End");            Logger.Write("Updating: ", "image1.Source Start...");
                this.image1.Source = logo;
                Logger.Write("Updating: ", "image1.Source End");
    新增此属性即可
                
                logo.CacheOption = BitmapCacheOption.None;
                logo.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;