Tag: windows phone 8

WP8 HttpClient.PostAsync永远不会返回结果

我有一个Windows Phone 8应用程序,我正在调用等待HttpClient.PostAsync,它永远不会返回结果。 它只是坐在那里挂起。 如果我从控制台应用程序运行完全相同的代码,它几乎立即返回结果。 执行该工作的所有代码都驻留在可移植的类库中。 我很感激你能提供的任何帮助。 我在这个状态下发现的所有其他问题都使用await client.PostAsync,我已经在做了。 我的类库中的代码是这样的: public class Authenticator { private const string ApiBaseUrl = “http://api.fitbit.com”; private const string Callback = “http://myCallbackUrlHere”; private const string SignatureMethod = “HMAC-SHA1”; private const string OauthVersion = “1.0”; private const string ConsumerKey = “myConsumerKey”; private const string ConsumerSecret = “myConsumerSecret”; private const string RequestTokenUrl = […]

BackgroundAudioPlayer是’正在播放’但没有调用GetSampleAsync()

我使用自定义MediaStreamSource在后台代理中从Web流式传输音乐。 在良好的网络条件下,这种方法很好,但是当网络连接不稳定时,会出现一个奇怪的问题。 当曲目开始播放时,通过第一次调用MediaStreamSource.GetSampleAsync(),一切顺利。 由于连接不稳定,如果数据不足,则源调用ReportGetSampleProgress(double)并返回而不报告样本。 这符合MSDN文档和代码示例。 令人好奇的是,根本没有进一步调用GetSampleAsync! 当缓冲继续时,源继续ReportGetSampleProgress直到样本准备就绪,此时它调用ReportGetSampleProgress(1.0)来指示完整缓冲区。 我尝试了几种方法,包括: 缓冲完成后, ReportGetSampleCompleted ; 这会失败,因为下载事件会进入任意线程,并且此方法对调用线程以及对GetSampleAsync的调用是否在堆栈上显然都很敏感; 无效的调用情况会导致COM错误。 在精确的错误条件下,停止并启动BackgroundAudioPlayer:这无法重新启动流式传输。 一旦最初读取样本失败,我怎样才能再次进行流式传输?

如何拥有照片查看器样式页面?

我不知道我是否正确命名,但我有一个显示一行图片的应用程序。 如果用户向左滑动,则全屏显示前一张图片,如果向右滑动,则会出现全屏下一张图片,两者的动作与在Photo应用程序或PDF阅读器中查看图片完全相同。 我以为我可以操纵全景控制以适应这个,但我无法全屏显示图片,顶部有标题的位置。 我怎样才能做到这一点? 有小费吗 注意:此stackoverflow上的策略很烦人。 有些类型的人可以投票关闭,或者说一些句子片段:你尝试了什么或你的代码在哪里。 从基地关闭这个问题以获得良好的感觉。 这是关于让导游有一种观看方式..我应该展示什么代码,如果不知道如何执行它? 无论如何,我找到了答案,没有必要这样做。

取消’HttpClient’POST请求

我在Windows Phone 8应用程序上使用HttpClient.PostAsync()上传图像。 用户可以选择通过UI按钮取消此上传。 要取消POST请求,我设置了CancellationToken 。 但这不起作用。 在取消请求之后,我看到仍然看到我的代理中发生了上传,很明显该请求被忽略了。 我的代码: using (var content = new MultipartFormDataContent()) { var file = new StreamContent(stream); file .Headers.ContentDisposition = new ContentDispositionHeaderValue(“form-data”) { FileName = “filename.jpg”, }; file.Headers.ContentType = new MediaTypeHeaderValue(“image/jpeg”); content.Add(file); await httpclient.PostAsync(new Uri(“myurl”, UriKind.Absolute), content, cancellationToken); } 另请注意,我有CancellationTokenSource的CancellationToken 。 用户单击“取消”按钮后,将调用tokensource.Cancel() 。 此外,我的测试用例中的图像是1到2 MB(不是那么大)。 那么,有没有办法取消HttpClient POST请求?

如何执行卡片翻转动画

我希望能够在用户点击屏幕时从设备屏幕的一半到另一半执行卡片翻转动画。 我之前从未使用动画,所以我不知道如何实现这一目标。 我引用了http://blogs.msdn.com/b/kevinash/archive/2011/12/21/flipping-card-animation-for-windows-phone-7-using-expression-blend.aspx,但我不知道如何恰当地修改解决方案。 我最终需要的是能够以这种方式翻转整个牌组。 MainPage.xaml中 Visible Visible MainPage.xaml.cs中 public MainPage() { InitializeComponent(); } private void cardBack_Tap(object sender, System.Windows.Input.GestureEventArgs e) { VisualStateManager.GoToState(this,”FlipCard”,true); }

Thread.Sleep会影响ThreadPool吗?

我需要为自己的目的控制一个线程:计算,等待,报告等… 在所有其他情况下,我正在使用ThreadPool或TaskEx。 在调试器中,当我在做Thread.Sleep() ,我注意到UI的某些部分变得不那么负责了。 虽然,没有调试器似乎工作正常。 问题是:如果我正在创建新的Thread和Sleep() ,它会影响ThreadPool / Tasks吗? 编辑:这是代码示例: 我的应用中的一个随机位置: ThreadPool.QueueUserWorkItem((state) => { LoadImageSource(imageUri, imageSourceRef); }); 我的应用中的另一个随机位置: var parsedResult = await TaskEx.Run(() => JsonConvert.DeserializeObject(resultString, Constants.JsonSerializerSettings)); 我的ConcurrentQueue(修改后,原文取自此处 ): 为队列需要创建线程: public void Process(T request, bool Async = true, bool isRecurssive = false) { if (processThread == null || !processThread.IsAlive) { processThread = new Thread(ProcessQueue); processThread.Name = […]

在Windows Phone 8中键盘打开时如何调整屏幕?

我在Windows Phone 8中工作。在我的应用程序的一个页面中有一个LongListSelector ,在它下面有一个TextBox 。 当TextBox聚焦时,键盘会打开。 当键盘打开时, LongListSelector向上移动键盘高度。 如果我通过键盘的偏移来保持LongListSelector的边距,那么LongListSelector的一些项目会在键盘下面。 我想要做的就是当键盘显示然后边缘将被更新,并且LongListSelector的前一个焦点项不应该在键盘下。 在这里,我不想使用ScrollTo()函数来滚动LongListSelector的特定项。 任何建议或帮助将不胜感激。

Adcontrol Windows Phone无法显示

我已经读过这个(类似的)问题: Windows手机广告无法正常工作我已阅读此博文 。 但它仍然无效。 我觉得它与我的参考文献有关。 或者是它没有出现在手机上调试应用程序? (因为我的cpu太旧而无法运行仿真) 我的xaml: xmlns:ads=”clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI” 以下: 在pubcenter我注册了应用程序和adunit以及大小(480 x 80)但它仍然是我手机上的黑色方块。 清单还具有所需的权限:

C#在WebBrowser中调用JavaScript

我试图在我的WebBrowser调用JavaScript方法: WebBrowser webBrowser = new WebBrowser(); webBrowser.NavigateToString(html); webBrowser.LoadCompleted += ((s, r) => { try { object tmp = webBrowser.InvokeScript(“GetData”); } catch (Exception exc) { } }); 这是HTML : function GetData () { return 50; } 但是当我调用javascript时: object tmp = webBrowser.InvokeScript(“GetData”); 我得到Exception : 信息: An unknown error has occurred. Error: 80020006. StakeTrace: at Microsoft.Phone.Controls.NativeMethods.ValidateHResult(Int32 hr) at […]

在ObservableCollection上实现AddRange,并对DataBinding提供适当的支持

我想我自己的ObservableCollection后代支持AddRange方法。 这是我目前拥有的: public class ObservableCollectionPlus : ObservableCollection { public void InsertRange(IEnumerable items) { this.CheckReentrancy(); foreach (var item in items) Items.Add(item); var type = NotifyCollectionChangedAction.Reset; var colChanged = new NotifyCollectionChangedEventArgs(type); var countChanged = new PropertyChangedEventArgs(“Count”); OnPropertyChanged(countChanged); OnCollectionChanged(colChanged); } } 我不太了解这里到底发生了什么,为什么会引发这些事件。 这是我在对google和stackoverflow进行一些研究后组装的一个解决方案。 现在,如果我将我的类的实例绑定到LongListSelector然后,在通过InsertRange动态地将项添加到ObservableCollectionPlus ,绑定的LongListSelector的滚动位置将被发送到它的顶部。 如果我以这种标准方式添加项目: foreach (var item in items) collection.Add(item); 那么LongListSelector的位置不会被移位。 但是当然这样我得到的DataBinding通知开销是不受欢迎的。 显然,在我目前的解决方案中出现了问题。 如何实现与foreach (var item […]