Tag: microsoft metro

如何从Win 8应用程序启动进程?

我找不到System.Diagnostics.Process来启动新进程。 我想这是故意的。 但还有另外一种方法吗? 这有可能吗?

WebAuthenticationBroker是否在Release 8候选版本的Windows 8 Metro App中运行

解决方案我的工作解决方案可以在答案或我的更新中找到。 1)现在确保在localhost上测试您已在localhost端口上为入站设置了Windows防火墙。 路由器上的端口转发(如果有)。 2)然后你需要告诉IIS Express可以请求来自本地主机的现场:查找Documents \ IISExpress \ config并编辑applicationhost.config。 在列表中找到您的站点,并从绑定中删除localhost 。 2a)ISS需要以管理员身份运行,以管理员身份运行visual studio也以admin身份启动iss … 3)找到您的IP,www.myip.com并将ACS返回uri更改为:http: http://90.90.90.90:909090/api/federation/ : http://90.90.90.90:909090/api/federation/ 4)更改webbroker以使用你的ip: WebAuthenticationResult webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync( WebAuthenticationOptions.None, new Uri(“https://traffictheory.accesscontrol.windows.net:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http%3a%2f%2flocalhost%3a48451%2f”), new Uri(“http://99.99.99.99:909090/api/federation/end”)); 一切都像这样对我有用。 我有一个hello world传递给我的metro应用程序作为令牌。 问题 我已经设置了WCF服务和Metro应用程序。 WCF服务设置为使用Azure ACS进行身份validation。 我制作了一个适用于WebService和ACS的控制台应用程序: static void Main(string[] args) { try { // First start the web project, then the client WebClient client […]

使用C#/ XAML在地铁样式应用程序中将canvas保存为图像

我正在使用C#/ XAML开发类似地铁风格的应用程序。 我想保存canvas上绘制的任何内容作为图像。 我检查了这个解决方案,但它没有帮助我。 将canvas保存到位图 http://blogs.msdn.com/b/saveenr/archive/2008/09/18/wpf-xaml-saving-a-window-or-canvas-as-a-png-bitmap.aspx 那么如何将canvas内容保存为图像呢? 请帮我进行示例编码。

反序列化Json对象 – DateTime

我的web-api返回一个用户对象。 在该对象中有一个DateTime属性。 当我在我的应用程序中读取它时,我得到一个错误,因为代表DateTime的字符串无效,它缺少\Date … {System.Runtime.Serialization.SerializationException:反序列化User类型的对象时出错。 DateTime内容’1984-10-02T01:00:00’不以’/ Date(’和以’)/’开头,如JSON所需。 —> public static async Task GetUser(string email) { try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url + “?email=”+email); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); User user = DataService.Deserialize(content); return user; } return null; } } catch (Exception ex) { return […]

用于Windows 8 Metro-UI的控件样式和模板

我遇到了一些关于我的C#/ XAML Metro-UI应用程序的视觉外观的问题。 我想自定义默认模板。 对于其他类型的应用程序,我可以从MSDN文章中获取默认样式和控件。 例如: 控制WPF的样式和模板 控制Silverlight的样式和模板 在哪里可以找到类似于Metro-UI默认样式和模板的内容? 我知道可以在Expression Blend中提取模板或样式。 但是我在下一个post中描述了我的Blend for Visual Studio 11的问题。

Windows 8 – 如何解除触摸键盘?

我正在用C#开发我的Windows 8应用程序,一个非常讨厌的事情是触摸键盘有时会停留在屏幕上,即使所有文本框都失去了焦点。 我阅读了文章键盘解雇逻辑白皮书 ,它解释了当从控制切换到控制时,即使控件可能不接受键盘输入,键盘也可以保持打开状态。 这将是我的情况,因为我的所有内容都托管在GridView或ListView中。 当用户点击屏幕上的任何项目时,点击将落在这些控件上。 这非常烦人,因为键盘占用了一半的屏幕,无法关闭键盘。 我试图将文本框设置为禁用,但它没有影响。 移除键盘的唯一方法是将焦点设置在按钮上,这非常黑客。 我认为我需要对“AutomationPeer”做一些事情,但我不清楚究竟要做什么。 有没有办法覆盖这种行为? 编辑:我想出来了。 目标是更改为白皮书中未列出的GridView和GridView项的控件类型。 这是我做的网格代码,允许我解雇键盘: public class KeyboardUnfocusableGridView : GridView { private class KeyboardUnfocusableGridViewAutomationPeer : GridViewAutomationPeer { public KeyboardUnfocusableGridViewAutomationPeer(GridView owner) : base(owner) { } protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Custom; } } private class KeyboardUnfocusableGridViewItemAutomationPeer : GridViewItemAutomationPeer { public KeyboardUnfocusableGridViewItemAutomationPeer(GridViewItem owner) : base(owner) { } […]

通过SkyDrive API将文件上传到skydrive

我尝试将文本文件上传到我的skydrive或者至少在SD中创建新的文本文件并通过我的Windows 8应用程序中的SkyDrive API编辑它的内容。 我怎样才能做到这一点? 我试着这样做: LiveConnectClient client = new LiveConnectClient(session); var fileData = new Dictionary(); fileData.Add(“name”, “new_file.txt”); try { LiveOperationResult fileOperationResult = await client.PutAsync(“me/skydrive”, fileData); this.infoTextBlock.Text = fileOperationResult.ToString(); } catch (LiveConnectException exception) { this.infoTextBlock.Text = exception.Message; } 但我收到错误“提供的请求无效。无法更新根SkyDrive文件夹。” 如果我写了类似“me / skydrive /”的内容,我会收到“提供的URL无效。不支持请求的路径”。 方法LiveConnectClient.PutAsync只允许我更新现有属性(但不是它的内容)。 应该如何正确地完成? 顺便说一句 – LCDC上的内容(http://msdn.microsoft.com/en-us/library/live/hh826531.aspx)是否已更新? 我问,因为dlls中不存在文档中的某些方法(fe LiveConnectClient.Upload。只有BackgroundUploadAsync)。 感谢您提前帮助,Micheal

将BitmapImage设置为null时,内存不会被释放

我有一个对象集合,每个对象包含一个BitmapImage。 我把这个集合绑定到FlipView。 当用户在FlipView中翻转页面时,所选对象的BitmapInmage将从ApplicationData加载,并将前一个对象的BitmapImage设置为null以释放内存。 问题是,内存永远不会松懈,应用程序在翻转一段时间后崩溃。 当我查看集合时,只有实际项目设置了BitmapImage,所有其他项目都将其设置为null。 那么我该如何减轻记忆? 我加载图片的方式: StorageFile s = await ApplicationData.Current.LocalFolder.GetFileAsync(localFilename); BitmapImage bitmapImage = new BitmapImage(); using (var stream = await s.OpenAsync(FileAccessMode.Read)) { bitmapImage.SetSource(stream); } return bitmapImage; 编辑:我认为问题可能是我加载图像的方式,我想文件流不会被释放

如何在WinRT中获取类的属性

我正在用C#和XAML编写Windows 8应用程序。 我有一个类,它具有许多相同类型的属性,它们在构造函数中以相同的方式设置。 我没有亲自为每个属性编写和赋值,而是希望获得我class级中某些类型的所有属性的列表,并将它们全部设置为foreach。 在“普通”.NET中我会写这个 var properties = this.GetType().GetProperties(); foreach (var property in properties) { if (property.PropertyType == typeof(Tuple)) property.SetValue(this, j.GetTuple(property.Name)); } 其中j是我的构造函数的参数。 在WinRT中, GetProperties()不存在。 Intellisense for this.GetType(). 没有显示我可以使用的任何有用的东西。

C#Windows 8 Store(Metro,WinRT)Byte数组到BitmapImage

我正在开发一个将filter应用于图像的Windows 8 Metro应用程序。 我有一个网络版的应用程序,并希望移植它。 但是众所周知,WinRT没有.NET提供的所有好处:/ 目前我在字节数组上应用filter,我想保持这种方式,因为它超快! 因此,在过去的几天里,我一直在寻找将StorageFile转换为byte []然后将byte []转换为BitmapImage的方法。 到目前为止,我已经成功完成了第一个(StorageFile到byte [])。 我是这样做的: public async Task ImageFileToByteArray(StorageFile file) { IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream); PixelDataProvider pixelData = await decoder.GetPixelDataAsync(); return pixelData.DetachPixelData(); } 这段代码返回一个byte[] ,其中包含像素数据BGRA。 这是棘手的部分。 我无法成功将字节数组转换为BitmapImage。 我搜遍了所有的地方,很多人建议使用WriteableBitmap,但这对我没什么好处。 我还发现了一些应该起作用的代码片段……但它们没有。 我尝试过的解决方案之一是使用InMemoryRandomAccessStream,如下所示: public async Task ByteArrayToBitmapImage(Byte[] pixels) { var stream = new InMemoryRandomAccessStream(); await […]