Tag: windows runtime

在可移植库中使用CallerMemberName属性

我有一个可移植的库,其目标是使用.net 4.5框架的Windows Phone 7.1+和Windows Store应用程序(用于WinRT)。 我想在其中使用新的[CallerMemberName]属性。 但是,VS2012告诉我这个属性在我的便携式库中不可用(这似乎正常,因为它在WP7.1项目中不可用)。 然而,我发现我可以创建自己的属性,编译器将通过使用此片段将其理解为真实属性: namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] public sealed class CallerMemberNameAttribute : Attribute { } } 但是,只要尝试编译它,我就会收到错误The type ‘System.Runtime.CompilerServices.CallerMemberNameAttribute’ exists in both ‘Portable.dll’ and ‘mscorlib.dll’ 。 我理解这条消息,但我想知道是否有办法在我的便携式lib中使用[CallerMemberName] ? 我可能错过了什么。

SignalR和WinRT客户端:不要在Start()上调用Wait()

我对SignalR的官方文档有疑问 – Hubs API Guide – .NET Client 。 在“ 如何建立连接”部分中 。 它写了以下内容: Start方法异步执行。 要确保在建立连接之后不执行后续代码行,请在ASP.NET 4.5异步方法中使用await,或在同步方法中使用.Wait()。 不要在WinRT客户端中使用.Wait()。 有谁知道不打电话给Wait()的具体原因是什么? 此外,当我有一个WinRT客户端,我与hubProxy.Invoke()调用服务器时,这也适用吗? 谢谢您的帮助!

如何以编程方式打开自定义设置魅力弹出按钮?

我在设置超级按钮中创建了一个自定义的AlarmSettingsPane,允许用户给出时间并选择音频文件作为闹钟铃声。 所以我在设置的魅力中实现了文件选择器。当我点击文件选择器按钮时,它将我带到一个新的全屏我可以选择我的文件,但是当我选择一个文件并打开它时,我被定向到我的主屏幕但设置魅力flyout关闭。 如何保留AlarmSettingsPane弹出窗口的状态并阻止它以编程方式关闭? 与设置一样,弹出窗口应包含与我选择文件之前相同的警报。 SettingsPane.Show()打开设置超级按钮,但不会转到我在标准设置弹出窗口内创建的闹钟设置。 如果您有任何想法,请告诉我。 谢谢 这是我的文件选择器按钮单击事件的代码 private async void PickAFileButton_Click(object sender, RoutedEventArgs e) { FileOpenPicker openPicker = new FileOpenPicker(); openPicker.ViewMode = PickerViewMode.List; openPicker.SuggestedStartLocation = PickerLocationId.MusicLibrary; openPicker.FileTypeFilter.Add(“.mp3”); openPicker.FileTypeFilter.Add(“.wma”); StorageFile file = await openPicker.PickSingleFileAsync(); if (file != null) { // Application now has read/write access to the picked file CustomSound.Text = file.Name; } else { […]

多个MessageDialog应用程序崩溃

我在我的应用程序的几个地方使用MessageDialogues 。 问题是,无论何时MessageDialog (或系统警报,如function警告)处于活动状态,而另一个我的MessageDialog被调用,应用程序将无exception或使用UnathorizedAccessException崩溃。 这就是我如何调用MessageDialog: CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { MessageDialog msg2 = new MessageDialog(_resourceLoader.GetString(“MsgGPSUnavailable”)); msg2.ShowAsync(); }); 我以为我应该等待关闭对话框,但是通过使用Dispatcher我将这个对话框排队到主UI线程,它自己处理这个问题? 谢谢你对这个问题的任何解释。 编辑 – 我继续一步一步地得到以下代码,它包含在同一个类中。 当我运行app时,会调用LoadDataToModel。 这没关系,msgGPSDisabled显示了对话框。 之后会引发事件并调用locator_StatusChanged。 这也没问题,并显示对话框。 现在奇怪的部分。 当我没有在LoadDataToModel中调用msgGPSDisabled且仅在locator_StatusChanged中调用时,应用程序在显示对话框后立即崩溃。 没有例外,第47行打开了App.gics(DEBUG &&!DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION)。 即使我使用try-catch,也可以使用它。 当我在locator_StatusChanged中使用不带Dispatcher的msgGPSDisabled时,会引发exception。 不可捕获,“找不到物品” public async Task LoadDataToModel() { await msgGPSDisabled(); this.IsBusy = true; await LoadDataGarvis(Stations); //rozparsuje raw data a načte je do modelu InitializePins(); this.IsBusy = […]

无法使用mailto uri创建包含多个收件人的新邮件

我正在使用在WinRT创建Windows 8.1 Store应用程序 。 我无法使用逗号或半冒号分隔每封电子邮件,使用mailto uri创建一个包含多个收件人的新邮件,两者都给出了同样的错误。 Invalid URI: The hostname could not be parsed. mailto字符串看起来像这样 “mailto:username@mail.com,username2@mail.com” “mailto:username@mail.com,username2@mail.com,” “mailto:username@mail.com, username2@mail.com” “mailto:username@mail.com;username2@mail.com” “mailto:username@mail.com;username2@mail.com;” “mailto:username@mail.com; username2@mail.com” 我已经尝试了所有这些变体,所有这些都给了我同样的错误,在新的uri时,就像这样。 var uri = new Uri(string.Format(“mailto:{0}”, mails)); 我不知道我做错了什么,或者如果没有实现,为什么它不会? 我创建了一些unit testing,看看是否有任何变化可行,但没有.. [TestClass] public class UriMailToTest { private Uri CreateMailToUri(string mail) { if (string.IsNullOrEmpty(mail)) throw new ArgumentNullException(“mail”); var uriMailTo = string.Format(“mailto:{0}”, mail); return new […]

WinRT – 在控件中显示动画GIF

我需要在我的地铁应用程序中显示动画GIF,但我找不到允许它的任何控件。 (我尝试了Player框架中的Image , MediaElement和MediaPlayer ) 是否有可能以某种方式显示动画GIF?

Keydown事件发生两次

在Windows商店App上,我有这个简单的TextBox <TextBox Name="TextBoxUser" HorizontalAlignment="Right" Width="147" Margin="20,0,0,0" KeyDown="TextBox_KeyDown" / 这有一个与之关联的KeyDown事件。 private async void TextBox_KeyDown(object sender, KeyRoutedEventArgs e) { if (e.Key == Windows.System.VirtualKey.Enter) { Debug.WriteLine(“LA”); } } 这个函数的输出是: LA LA 虽然我只输入一次,但它会打印2次。 任何原因或我做错了什么?

无法从WinRT连接到远程服务器

我正在制作一个应用程序,基本上只需要将一段XML发送到服务器并返回。 我遇到了麻烦,但要让它工作并得到非常奇怪的错误 public bool Post(string data) { string server=”http://my-lan-computer:9091/foo” bool success = false; HttpClient client = new HttpClient(); try { client.PostAsync(server, new StringContent(data, Encoding.UTF8, “text/xml”)).Wait(); //error here success = true; } catch { } return success; } 我发布的服务器不是localhost,但它是我本地网络上的一台计算机。 我深深嵌套这个错误: innerException: {“An error occurred while sending the request.”} innerException: {“Unable to connect to the remote server”} […]

winmd文件的版本255.255.255.255表示什么?

我注意到大多数(所有?)。 winmd文件的版本为255.255.255.255,如: Windows,版本= 255.255.255.255,Culture = neutral,PublicKeyToken = null Metro应用程序可以使用此版本号引用此类程序集。 Windows.winmd本身也引用了: mscorlib,版本= 255.255.255.255,Culture = neutral,PublicKeyToken = b77a5c561934e089 但是,据我所知,具有此版本号的程序集不存在。 此版本号是否具有特殊含义? 有没有这方面的文件?

向DatePicker添加Blend行为的问题

我正在尝试向DatePicker控件添加Blend行为,以将MVVM-Light RelayCommand绑定到DateChanged事件,如下所示: 我使用以下定义: xmlns:Interactivity=”using:Microsoft.Xaml.Interactivity” xmlns:Core=”using:Microsoft.Xaml.Interactions.Core” 但是,我一直收到以下错误: WinRT information: Cannot add instance of type ‘Microsoft.Xaml.Interactions.Core.EventTriggerBehavior’ to a collection of type ‘Microsoft.Xaml.Interactivity.BehaviorCollection’. 我已经在我的项目中(以及在同一个Xaml文件中的其他控件)中以这种方式成功地使用Blend行为将事件绑定到命令,并且DatePicker控件是唯一抛出错误的控件。 有没有其他方法来实现这一点或WinRT DatePickers以这种方式受限?