Windows Phone Pivot 模拟 滑动Image Viewer 出现 0x8000ffff 异常

简介:
  App有多张图片需要展示,打算做一个 类似于 “图片”里面可以滑动的 图片展示页面。
  实现的方式有很多。选个简单的,直接用Pivot来模拟。

问题:
   过程中出现了:0x8000ffff 异常!!!
     我将  ObservableCollection<Uri> 绑定到 ItemTemplete,并且设置ItemSource时候
引发0x8000ffff 异常。完全没有头绪。


使用的代码:

代码如下:
数据
 private ObservableCollection<Uri> _imageUris;

        public ObservableCollection<Uri> ImageUris
        {
            get { return _imageUris; }
            set
            {
                if (_imageUris != value)
                {
                    _imageUris = value;
                    RaisePropertyChanged("ImageUris");
                }
            }
        }

加载数据
protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (PhoneApplicationService.Current.State.ContainsKey("images"))
            {
                object list;
                if (PhoneApplicationService.Current.State.TryGetValue("images", out list))
                {
                    
                    ImageUris = list as ObservableCollection<Uri>; 
                }
            }
         Pivot.ItemSource = ImageUris;
}

XAML 
		<controls:Pivot Title="查看图片"
						Name="Pivot" >
			<controls:Pivot.ItemTemplate>
				<DataTemplate >
					<Image Source="{Binding}" />
				</DataTemplate>
			</controls:Pivot.ItemTemplate>
			
			<controls:Pivot.HeaderTemplate>
				<DataTemplate >
					<Grid>
						<TextBlock Margin="0,0,1,0"
								   TextWrapping="Wrap"
								   d:LayoutOverrides="Width, Height" />
					</Grid>
				</DataTemplate>
			</controls:Pivot.HeaderTemplate>
		</controls:Pivot>



解决问题:

1.找了2 3个小时,开始以为是StaticsResources的问题。网上有说法是绑定名字出错,但是经过检查,
没有错误!

2.然后找到这个文章
http://www.nachmore.com/2010/silverlight-why-do-i-get-0x8000ffff-when-using-writeablebitmap-on-an-element/

Silverlight: Why do I get 0x8000ffff when using WriteableBitmap on an Element


大概是讲:强迫系统去render看不到的控件,会仆街。
按照这个思路,我觉得应该讲BitmapImage加载了,再绑定。

3.那就先将BitmapImage下载来咯,WebClient??好像不太好
我找到这个方案:
http://blog.csdn.net/moxiaomomo/article/details/7907054

延迟加载BitmapImage

C# 改成这样:

 public ObservableCollection<BitmapImage> Images { get; set; } 

 protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (PhoneApplicationService.Current.State.ContainsKey("images"))
            {
                object list;
                if (PhoneApplicationService.Current.State.TryGetValue("images", out list))
                {
                    
                    ImageUris = list as ObservableCollection<Uri>; 
                }
            }

            Images.Clear();

            foreach (var uri in ImageUris)
            {
                BitmapImage bitmap = new BitmapImage();
                bitmap.CreateOptions = BitmapCreateOptions.BackgroundCreation;
                // 当图片下载完成并解码成功时,会触发ImageOpened
                bitmap.ImageOpened += (s, ex) =>
                {
                    // 添加到图片列表
                    Images.Add(s as BitmapImage); 
                };
                // uri为远程文件地址
                bitmap.UriSource = uri; 
            }


            int index = int.Parse(NavigationContext.QueryString["index"]);
            Pivot.SelectedIndex = index;
            Pivot.ItemsSource = Images;
        }


咔嗒!成了!




历史 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值