如何使用DataTemplate访问列表框中的特定项目?

我有一个ListBox,包括一个带有2个StackPanels的ItemTemplate。 我想要访问的第二个StackPanel中有一个TextBox。 (将其可见性更改为true并接受用户输入)触发器应为SelectionChangedEvent。 因此,如果用户单击ListBoxItem,TextBlock将变为不可见,TextBox将变为可见。 XAML代码: 我想有几种方法可以解决这个问题,但我没有尝试过。 我目前的做法是这样的 private void ContactListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBoxItem listBoxItem = ContactListBox.SelectedItem as ListBoxItem; DataTemplate listBoxTemplate = listBoxItem.ContentTemplate; // How to access the DataTemplate content? StackPanel outerStackPanel = listBoxTemplate.XXX as StackPanel; StackPanel innerStackPanel = outerStackPanel.Children[1] as StackPanel; TextBox nameBox = innerStackPanel.Children[0] as TextBox; TextBlock nameBlock = innerStackPanel.Children[1] as TextBlock; […]

C#引用另一个方法的变量

我是C#的新手,我真的需要知道如何从另一个方法调用/使用字符串。 例如: public void button1_Click(object sender, EventArgs e) { string a = “help”; } public void button2_Click(object sender, EventArgs e) { //this is where I need to call the string “a” value from button1_click string b = “I need “; string c = b + a; } 所以在这个例子中,我需要从函数button2_Click()调用函数button1_Click()定义的字符串“ a ” 谢谢!!

如何在C#WinRT / winmd中调整图像大小?

我有一个简单的问题,但到目前为止我还没有找到答案:如何在C#WinRT / WinMD项目中调整jpeg图像并将其保存为新的jpeg? 我正在开发Windows 8 Metro应用程序,用于从某个站点下载日常图像并将其显示在Live Tile上。 问题是图像必须小于1024×1024且小于200kB,否则它将不会显示在磁贴上: http : //msdn.microsoft.com/en-us/library/windows/apps/hh465403.aspx 如果我得到更大的图像,如何调整它以适应Live Tile? 我正在考虑简单的resize,如宽度/ 2和高度/ 2,同时保持纵横比。 这里的具体要求是代码必须作为Windows运行时组件运行,因此WriteableBitmapEx库在这里不起作用 – 它仅适用于常规WinRT项目。 WriteableBitmapEx甚至还有一个分支作为winmd项目,但它还远没有准备好。

C#WebClient禁用缓存

美好的一天。 我在我的C#应用​​程序中使用WebClient类,以便每分钟下载相同的文件,然后应用程序执行简单的检查以查看文件是否已更改,以及它是否确实对其执行了操作。 好吧,因为这个文件每分钟下载一次, WebClient缓存系统就会缓存文件,而不是再次下载文件,只是简单地从缓存中获取文件,这样就会检查下载的文件是否是新文件。 所以我想知道如何禁用WebClient类的缓存系统。 我试过了。 Client.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.BypassCache); 我也试过标题。 WebClient.Headers.Add(“Cache-Control”, “no-cache”); 没有用。 那我怎么能禁用缓存呢? 谢谢。 编辑 我还尝试了以下CacheLevels : NoCacheNoStore , BypassCache , Reload 。 没有效果,但是如果我重新启动计算机,缓存似乎被清除,但我不能每次都重新启动计算机。 面对最近的活动更新(8集2012) 标记为已接受的答案解决了我的问题。 简单来说,我使用套接字下载文件,这解决了我的问题。 基本上是对所需文件的GET请求,我不会详细介绍如何操作,因为我相信你可以在SO上找到很多“如何”,以便自己做同样的事情。 虽然这并不意味着我的解决方案也是最适合您的,但我的第一个建议是阅读其他答案,看看是否有用。 好吧无论如何,因为这个问题已经看到了最近的一些活动,我想添加这个更新,以包括一些我认为应该考虑面临类似问题的人应该考虑的提示或想法,他们尝试了他们可以想到的一切,并且确定问题没有撒谎他们的代码。 可能是大多数情况下的代码,但有时候我们只是不太看,只要走几分钟后再回来,你可能会看到它是空白范围,就像它是最明显的一样。第一名。 无论哪种方式,如果您确定,那么在这种情况下,我建议检查天气您的请求通过其他具有缓存function的设备(计算机,路由器,代理,…),直到它到达预定目的地。 考虑到大多数请求都通过之前提到的一些此类设备,更常见的是路由器,除非您通过服务提供商网络直接连接到Internet。 有一段时间我自己的路由器正在缓存文件,奇怪我知道,但事实就是如此,每当我重新启动它或直接连接到Internet时,我的缓存问题就消失了。 并且没有任何其他设备连接到路由器可以被指责,只有计算机和路由器。 顺便说一句,一般建议,虽然它主要适用于那些在公司开发计算机而不是自己的计算机上工作的人。 可以通过任何更改您的开发计算机运行各种缓存服务? 有可能的。 此外,考虑到许多高端网站或服务使用内容交付网络 (CDN),并且根据CDN提供商,无论何时更新或更改文件,此类更改都需要一些时间才能反映在整个网络中。 因此,您可能有可能要求提供可能处于更新中间的文件,并且最近的CDN服务器尚未完成更新。 在任何情况下 ,特别是如果你总是一遍又一遍地请求同一个文件,或者你找不到问题所在,那么如果可能的话,我建议你重新考虑你的方法,一次又一次地请求同一个文件,而是考虑构建一个简单的Web服务 ,以满足您首先考虑满足此类文件的需求。 如果您正在考虑这样的选项,我认为您可能会更容易根据自己的需要构建REST样式Web API 。 我希望这个更新在某种程度上对你有用,肯定会在我回来的时候。 祝您的编码工作顺利。

填充MemoryStream时OutOfMemoryException:在16GB系统上分配256MB

我在我的开发IIS服务器(来自VS2010 IDE)上运行以下方法,在64位Windows 7计算机上安装了16 GB RAM: public static MemoryStream copyStreamIntoMemoryStream(Stream stream) { long uiLen = stream.Length; byte[] buff = new byte[0x8000]; int nSz; MemoryStream ms = new MemoryStream(); try { while ((nSz = stream.Read(buff, 0, buff.Length)) != 0) { ms.Write(buff, 0, nSz); } } finally { Debug.WriteLine(“Alloc size=” + ms.Length); } return ms; } 我在这一行得到System.OutOfMemoryException : […]

File.ReadLines()和File.ReadAllLines()之间有什么区别?

我有关于File.ReadLines()和File.ReadAllLines()的查询。它们之间有什么区别。 我有文本文件,其中包含行数据。 File.ReadAllLines()返回数组并使用File.ReadLines().ToArray(); 我也可以得到相同的结果。那么这些方法有什么性能差异吗? string[] lines = File.ReadLines(“C:\\mytxt.txt”).ToArray(); 要么 string[] lines = File.ReadAllLines(“C:\\mytxt.txt”);

如何从Unity连接到数据库

我试图通过Unity连接到MS SQL数据库。 但是,当我尝试打开连接时,我收到IOException:连接丢失。 我从Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0导入了System.Data.dll。 我使用以下代码: using UnityEngine; using System.Collections; using System.Data.Sql; using System.Data.SqlClient; public class SQL_Controller : MonoBehaviour { string conString = “Server=myaddress.com,port;” + “Database=databasename;” + “User ID=username;” + “Password=password;”; public string GetStringFromSQL() { LoadConfig(); string result = “”; SqlConnection connection = new […]

Json转换空字符串而不是null

我正在尝试序列化我的结构,以便没有获得值的字符串获得其默认值“”而不是null [JsonProperty(PropertyName = “myProperty”, DefaultValueHandling = DefaultValueHandling.Populate)] [DefaultValue(“”)] public string MyProperty{ get; set; } 我在Json字符串中的结果: “myProperty”: null, 我想要的是 “myProperty”: “”, 我也试过创建一个没有任何影响的转换器,因为某些原因,转换和写入JJ函数甚至都没有触发: [JsonProperty(PropertyName = “myProperty”)] [JsonConverter(typeof(NullToEmptyStringConverter))] public string MyProperty{ get; set; } class NullToEmptyStringConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(object[]); } public override object ReadJson(JsonReader reader, Type objectType, object […]

.NET中最准确的计时器?

运行以下(略微伪)代码会产生以下结果。 我对计时器的真空程度感到震惊(每个Tick增加~14ms)。 那里有更准确的东西吗? void Main() { var timer = new System.Threading.Timer(TimerCallback, null, 0, 1000); } void TimerCallback(object state) { Debug.WriteLine(DateTime.Now.ToString(“ss.ffff”)); } Sample Output: … 11.9109 12.9190 13.9331 14.9491 15.9632 16.9752 17.9893 19.0043 20.0164 21.0305 22.0445 23.0586 24.0726 25.0867 26.1008 27.1148 28.1289 29.1429 30.1570 31.1710 32.1851

如何在WebBrowser控件上使用DrawToBitmap修复不透明度错误?

根据以下链接和我的控制台应用程序, DrawToBitmap方法不尊重不透明度。 certificate链接: http : //social.msdn.microsoft.com/Forums/vstudio/en-US/e9704309-0c52-442d-80e0-2f8393dcd313/webbrowser-opacity-problem- 我的HTML代码: http : //fiddle.jshell.net/L37TC/ ffff HIDDEN TEXT! SomeText 我的C#控制台代码: var bmp = new Bitmap(640,480, PixelFormat::Format32bppArgb) var web = (System.Windows.Forms.Control)sender; web.DrawToBitmap(bmp, Rectangle(0, 0, 640,480)); 所以我正在寻找替代的.NET内置解决方案( 没有CEF,Awesomium,或任何扩展请 )只是.NET的内置function来修复错误或替代解决方案,以在我的控制台中截取Web URL的屏幕截图应用。 如果我将WebBrowser窗口显示给我的客户端并使用CopyFromScreen ,则不会显示不透明度并且不显示HIDDEN TEXT ,我怎么不想让WebBrowser窗口对桌面屏幕可见。 我正在寻找一个内置的解决方案,可以在没有HIDDEN TEXT的问题中从已发布的U​​RL中截取屏幕截图。 换句话说,是一种尊重opacity的解决方案。 EDIT1:我的Bitmap class所有像素(.NET类不是BMP格式)的alpha值为255.所以问题不在于文件格式。 我尝试过PNG和任何其他.NET支持的格式。 完整的源代码(控制台模板,需要添加对System.Drawing和System.Windows.Forms引用 class Program { static System.Windows.Forms.WebBrowser w = new System.Windows.Forms.WebBrowser(); [STAThread] static […]