Tag: windows phone 8

Windows Phone 8 – MVVM ViewModels和App.xaml.cs

我一直在研究MVVM模式并将其应用到Windows Phone 8应用程序中,我对在应用程序中初始化和访问ViewModel的最佳实践有疑问。 当我从WP8 SDKs模板创建数据绑定应用程序时 ,我注意到App.xaml.cs文件中的这段代码: public static MainViewModel ViewModel { get { // Delay creation of the view model until necessary if (viewModel == null) viewModel = new MainViewModel(); return viewModel; } } private void Application_Activated(object sender, ActivatedEventArgs e) { // Ensure that application state is restored appropriately if (!App.ViewModel.IsDataLoaded) { App.ViewModel.LoadData(); } } […]

如何在Windows Phone Runtime中向Clipboard添加文本?

以前在Windows Phone 8中我们可以使用Clipboard来共享文本。 它在Windows 8中受支持, Clipboard.SetContent(dataPackage); 但我发现Windows Phone Runtime不支持它 。 难道不再可能,或者还有其他办法吗?

WP8 LongListSelector – 重新分配ItemsSource无效

我正在使用新的Windows Phone 8 LongListSelector控件,它将ItemsControl分配给List<Group>如下所示: List<Group> searchResults; async void doSearch() { this.searchResults = await SearchHelper.Instance.getSearchResults(txtSearchTerm.Text); longList.ItemsSource = this.searchResults; } 不幸的是,我第二次搜索时,重新设置.ItemsSource属性没有任何效果,控件只显示旧的List。 如何更改绑定?

Windows Phone 8.1 Silverlight中的Toast通知参数

好的,所以我在8.1 SL项目中使用新的ToastNotificationManager而不是旧的ShellToast。 ShellToast在toast消息上有NavigationUri,这非常容易。 在新的祝酒词中,您必须根据本文自行指定启动参数。 但是看起来8.1 SL没有事件OnLaunched(LaunchActivatedEventArgs args)你应该在App.xaml.cs中监听参数: 第2步:处理应用程序的“OnLaunched”事件 当用户点击您的祝酒词或通过触摸选择它时,相关的应用程序将启动,并触发其OnLaunched事件。 注意如果您在Toast中未包含启动属性字符串,并且在选择Toast时您的应用程序已在运行,则不会触发OnLaunched事件。 此示例显示了OverLaunched事件的覆盖语法,您将在其中检索并处理通过Toast通知提供的启动字符串。 protected override void OnLaunched(LaunchActivatedEventArgs args) { string launchString = args.Arguments …. } 我的代码: // Using the ToastText02 toast template. ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; // Retrieve the content part of the toast so we can change the text. XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); //Find the text […]

从内存中删除项目/页面/用户控件

我做了一个Windows手机应用程序,不幸的是有一些内存泄漏,因为页面没有正确删除。 通过使用答案解决了这个问题: 删除页面Windows手机说明: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { while (App.RootFrame.RemoveBackEntry() != null) ; //line if you navigate without backkey base.OnNavigatedTo(e); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); }); }); } 这从分析器中删除了页面引用。 但是在导航时记忆仍然增加了一些。 并且增加记忆的来源并不明显。 因此,我尝试引入一个空白项目并导航到星空导航,如下所示: 这样可以移除超过20 mb的视觉效果和其他元素。 所以这是重要的一步。 因此,我希望将function分解到不同的项目中,以消除不同function之间的任何联系,并保持较低的内存使用率。 最终得到以下结构: 网络服务 MainProject SecondaryProject PortableLibrary 我使用Portable Library在所有项目之间共享模型。 这影响了每次导航到新项目时,旧项目中的所有内容都被清除,即每个项目只有一个元素存在,主要内存改进。 […]

“未加载模块MyLibrary.dll的符号”?

我正在尝试通过制作一个提供有关口袋妖怪信息的基本应用来学习Windows Phone开发。 为此,我创建了一个可移植的类库(PokeLib.dll),因此它与通用应用程序兼容。 我已通过同一解决方案(“测试”)中的项目对此进行了测试,并且工作正常。 您可以在我的Github上查看这些代码,但据我所知,这一切都很好。 这两个项目都在一个解决方案中。 对于Windows Phone应用程序的解决方案,我将PokeLib添加为“现有项目”,添加了引用,并编写了几行代码以确保我可以将其称为正常: MainPage.xaml中: MainPage.xaml.cs中: protected override void OnNavigatedTo(NavigationEventArgs e) { p = new Pokemon(1); // gets data for Pokemon #1 (Bulbasaur) } Pokemon p; int counter = 0; private async void GetDataButton_Click(object sender, RoutedEventArgs e) { DataText.Text = “Fetching… Count: ” + ++counter; if (counter == 1) // first […]

正确的方法来处理JSON字符串中的&符号发送到REST Web服务

好, 我正在使用System.Runtime.Serialization和DataContractJsonSerialization 。 问题是在请求中我发送了一个带有&字符的属性值。 说, AT&T ,我收到错误的回复: Invalid JSON Data 。 我认为转义将在库内完成,但现在我看到序列化没有触及&符号&字符。 是的,对于JSON格式,这是有效的。 但是这对我的POST请求来说是一个问题,因为我需要将它发送到一个服务器,如果包含一个&符号会响应错误,因此我在这里。 HttpUtility.HtmlEncode位于System.Web库中,因此可以使用Uri.EscapeUriString 。 我这样做是为了尝试,但无论如何,没有它,所有请求都正常工作,除了一个&符号值。 编辑: HttpUtility类移植到Windows Phone SDK,但编码字符串的首选方法仍然是Uri.EscapeUriString 。 首先想到的是弄脏并开始更换会导致服务器出现问题的特殊字符,但是,我想知道,我应该做的另一个解决方案是,它是否有效且“正确”? 我应该告诉我使用 // Convert the string into a byte array. byte[] postBytes = Encoding.UTF8.GetBytes(data); 将JSON转换为byte[]并写入Stream 。 和, request.ContentType = “application/x-www-form-urlencoded”; 作为WebRequest.ContentType 。 那么,我是不是因为某种原因而搞砸了? 谢谢。

如何检测WP8中是否播放背景音乐?

如果您知道如果您的应用程序在未经用户同意的情况下停止当前正在播放的音乐,则在您知道无法通 我确实在这里看到了这个可能适用于WP7应用程序的问题,但它显然不适用于WP8。 我认为它不起作用,因为WP8操作系统不支持XNA(它只是向后兼容,如果您使用7.1开发应用程序)。 有没有人遇到过在WP8中检测背景音乐的解决方案。

Windows Phone 8.1 MediaComposition – 拼接video时音频太快

尝试将多个video连接在一起时遇到问题。 每当我合并2个或更多video时,音频以双倍速度播放,而video正常播放。 以下是代码。 我错过了什么吗? 我在测试时会得到相同的结果,但是克隆单个video或选择多个video。 我已经比较了这里的代码示例(我没有修剪)。 public static IAsyncOperation ConcatenateVideoRT([ReadOnlyArray]IStorageFile[] videoFiles, IStorageFolder outputFolder, string outputfileName) { return Task.Run(async () => { IStorageFile _OutputFile = await outputFolder.CreateFileAsync(outputfileName, CreationCollisionOption.GenerateUniqueName); MediaComposition _MediaComposition = new MediaComposition(); foreach (IStorageFile _VideoFile in videoFiles) { MediaClip _MediaClip = await MediaClip.CreateFromFileAsync(_VideoFile); _MediaComposition.Clips.Add(_MediaClip); _MediaComposition.Clips.Add(_MediaClip.Clone()); } TranscodeFailureReason _TranscodeFailureReason = await _MediaComposition.RenderToFileAsync(_OutputFile); if (_TranscodeFailureReason != TranscodeFailureReason.None) […]

如何在Windows Phone 8中的录音机中启用暂停和恢复?(详情为Insde)

我正在使用Windows Phone 8中的录音机。我已经完成了录音启动和停止function,但我没有找到任何暂停和恢复录音function。 也不知道如何为录制的音频添加细节,如创建日期时间,专辑封面等, 我见过麦克风类但我找不到任何东西。 我已经看过Microphone.GetData方法并尝试使用它,请告诉我,如果有人知道这个或知道任何有用的链接。 。 。