Tag: windows runtime

获取枚举值的自定义属性

在WinRT .NET应用程序(C#)中,我想获取在枚举值上定义的自定义属性。 以下面的枚举为例: public enum MyEnum { [Display(Name=”Foo”)] EnumValue1, [Display(Name=”Bar”)] EnumValue2 } 现在在“普通”.NET中,我知道我能够使用enumValue.GetType().GetMember(enumValue.ToString())获取枚举值的自定义属性enumValue.GetType().GetMember(enumValue.ToString()) 。 不幸的是,在WinRT .NET中,Type类上没有GetMember()方法。 有什么建议怎么搭配? ================================================== === 感谢下面的Marc,我找到了答案 ! 以下代码用于从.NET 4.5 WinRT中的枚举值获取特定的自定义属性: public static class EnumHelper { public static T GetAttribute(this Enum enumValue) where T : Attribute { return enumValue .GetType() .GetTypeInfo() .GetDeclaredField(enumValue.ToString()) .GetCustomAttribute(); } }

Windows RT和c#

我需要使用C#和XAML开发Metro风格应用程序,它必须在Windows RT设备和完整的Windows 8操作系统上运行。 所以我只允许在没有任何.net框架程序集的情况下使用WinRT。 我读过这个问题 Microsoft Surface Tablet:为两种设备编写应用程序? 这个非常有用的post: http : //blogs.msdn.com/b/jasonz/archive/2012/06/12/what-you-need-to-know-about-developing-for-windows-on-arm- woa.aspx ,但我仍然有疑问:当我甚至创建一个空白的Metro风格应用程序项目时,我有.NET组合地铁风格。 我是自己删除它还是做错了什么? 如果需要使用像Prism fw移植到WinRT或mvvvm光的东西我该怎么办? 它们是否允许我仅在本机WinRT上开发WOA应用程序? 这些时刻对我来说并不清楚。 你能解释我在ARM上的Windows RT和Windows之间的区别我是否只需要使用WinRT(不带.net)来开发WindowsRT操作系统? 希望您能够帮助我。

在MVVMCross上从ViewModel执行UI代码

我刚开始使用MvvmCross,但我没有找到任何关于如何从ViewModel执行UI代码的信息。 在Caliburn上有coroutine,所以我可以访问视图并保持ui代码与viewmodel代码分开。 在我的第一个案例中,我需要从ViewModel中的命令打开一个拨号,这是正确的方法吗? 现在我正在开发一个WinRT应用程序。 谢谢

调用等待GetFileAsync()永远不会返回,应用程序在WinRT应用程序中挂起

我试图在应用程序启动时加载和读取设置文件,大约90%的时间, await GetFileAsync(“filename.xml”); 永远不会返回,因此,悬挂应用程序。 大约四分之一的时间,如果我单步执行代码,它实际上将返回并读取文件。 这是代码的一个非常简化的版本: App.xaml.cs: protected override void OnLaunched(LaunchActivatedEventArgs args) { FileLoader.Load().Wait(); // File-load dependent stuff } FileLoader.cs: public async static Task Load() { StorageFolder folder = ApplicationData.Current.LocalFolder; StorageFile file; bool fileExists = true; try { // The following line (often) never returns file = await folder.GetFileAsync(“filename.xml”); { catch { fileExists = false; […]

Windows Phone 8.1中的ListView在滚动列表时抖动(XAML)

我在Windows Phone 8.1应用程序中滚动ListViews时遇到问题。 短列表滚动得很好,滚动顺畅但是很快虚拟化就会在整个ListView“摆动”中向左轻微踢,但是明显足以令人讨厌。 我已经尝试删除所有过渡到没有效果,以及项目加载增加到没有成功。 将项目面板设置为StackPanel(删除虚拟化)可以解决问题,但不是更可取。 我的列表视图绑定到BasicView模板附带的DefaultViewModel中的属性。 我做错了什么以及导致我的ListViews出现这种行为的原因是什么? XAML:

如何逐行读取文本文件?

我无法在Windows RT(Windows 8商店)中逐行找到有关如何读取文本文件的简洁说明。 假设我有一个文件夹: MyFolder/Notes.txt 我想从Notes.txt读取数据并将其添加到字符串数组中。 我如何从该文件读/写? 我之前使用的是StreamReader,但现在它非常令人困惑。 并且开发样本没有那么多帮助。

HRESULT:0xC00CE556 – 将字符串加载到XML

我正在尝试加载包含从SkyDrive下载的XML的字符串。 XmlDocument myXML = new XmlDocument(); myXML.LoadXml(importXMLDocument); 当我调用上面的代码时,我收到以下错误: 来自HRESULT的exception:0xC00CE556 这是我试图从字符串和加载转换为XML文档的XML: Tahoe 2004 97742 5w-30 6 0 0 0 0 0 97742 2012-05-04T19:53:53.358-06:00 2012-08-04T19:53:53.358-06:00 100742 false false 3000 3 true true true 2 Mazda3 2011 21504 abcdefg 0w-20 0 0 0 0 0 0 21504 2012-09-14T18:05:02.298-06:00 2013-02-14T18:05:02.298-07:00 26504 false false 64.75 need new tires – $500+ […]

如何获得WinRT中的Key

我曾使用OnTextInput Event来获取WPF / Silverlight中最终用户的Key Pressed,但是在WinRT的情况下,我没有这样的事件,我对KeyDown事件感到震惊。 虽然事件返回用户按下的键,但是当事件返回VirtualKey Enum时,我无法区分大小写(即大写或小写)。 有没有可能的解决方法? 问候

处理WinRT StreamSocket断开连接(服务器端和客户端端)

我有一个我正在为Windows 8 / WinRT编写的应用程序,它使用StreamSocket API与服务器建立流连接。 也就是说,服务器将数据流式传输到客户端,有时使用元标记,并且可以随时断开连接。 我遇到的问题是我不知道如何检测服务器何时断开连接。 StreamSocket类(输入或输出流)或与连接状态有关的DataReader / DataWriter类似乎没有任何事件或属性。 最重要的是,在服务器端与客户端断开连接后,DataReader方法ReadAsync不会失败。 相反,操作成功,据我所知,它填充到缓冲区的数据只是服务器发送给它的最后一件事(即它没有清除它的内部缓冲区,即使我可以看到它已经“消耗”了每次调用ReadByte时缓冲区。 它为ReadAsync的每次后续调用执行此操作 – 使用服务器在断开连接之前发送的内容重新填充缓冲区。 这是代码的简化版本: public async Task TestSocketConnectionAsync() { var socket = new StreamSocket(); await socket.ConnectAsync(new HostName(Host), Port.ToString(), SocketProtectionLevel.PlainSocket); var dr = new DataReader(socket.InputStream); dr.InputStreamOptions = InputStreamOptions.Partial; this.cts = new CancellationTokenSource(); this.listenerOperation = StartListeningAsync(dr, cts); } public async Task StartListeningAsync(DataReader dr, CancellationTokenSource cts) […]

在网格视图滚动结束上加载更多项目

我正在使用XAML / C#开发Windowsapp store应用程序,我有一个GridView一次显示12个项目(3 x 4)。 我需要做的是,一旦用户滚动到最后,更多项目将添加到GridView。 如何在末尾滚动事件? 我尝试了很多方法,但没有任何效果…… 更新:我花了很多时间和很多例子来判断我做错了什么。 ListView工作,但GridView没有…最后我注意到GridView项必须有一个宽度高度,以便增量加载工作。