草庐IT

c# - 样式化 WPF ComboBox 项目

我有一个非常简单的WPF应用程序,它显示一个ComboBox,它绑定(bind)到代表人的类列表。每个“Person”对象都有一个Name字符串字段和一个Sex枚举。我希望ComboBox显示各种人的姓名字段的下拉列表,但要根据性别字段设置每一行的样式,例如,男性为蓝色,女性为粉红色。谁能告诉我我做错了什么?这是XML:这是C#:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Controls;usi

c# - WPF Key 是数字或数字

我的窗口中有previewKeyDown方法,我想知道按下的键只是A-Z字母或1-0数字(没有任何F1..12、enter、ctrl、alt等-只是字母或数字)。我试过Char.IsLetter,但我需要给字符,所以e.key.ToString()[0]不起作用,因为几乎每次都是一封信。 最佳答案 像这样的事情会做:if((e.Key>=Key.A&&e.Key=Key.D0&&e.Key=Key.NumPad0&&e.Key当然,您还必须根据您的要求检查没有按下CTRL等修改键。 关于

c# - WPF/C# - 将日期格式应用于 ListView

我有一个绑定(bind)到对象集合的ListView。其中一个属性是名为startDate的DateTime对象。它以标准的1/1/20011:00:00PM格式显示我想将日期设置为yyyy-MM-ddHH:mm:ss.fff格式,仅用于显示目的。有没有办法在以上面所需的格式显示底层DateTime对象的同时保持其完好无损?我更愿意在XAML中执行此操作,而不是向对象添加显示属性或类似的东西。如果重要的话,对象实现INotifyPropertyChanged接口(interface)。在此先感谢大家。 最佳答案 只需更改绑定(bin

c# - WPF 遍历数据网格

使用WPFC#.NET4.5和visualstudio2012ulti。旧的winforms代码:foreach(DataGridViewRowparetoRowinParetoGrid.Rows){if((Convert.ToInt32(paretoRow.Cells["CurrentPareto"].Value)如您所见,我循环浏览的每一行都会检查一个特定的单元格,如果为真,我就会填充另一个单元格。这是我以前多次使用过的很好的旧winforms代码……但是。切换到WPF与我之前假设的有很多不同。DataGrid不包含Row属性。相反,我认为你需要使用:DataGridRowpare

c# - 无法加载文件或程序集 'Xceed.Wpf.Toolkit

我正在为另一个应用程序AutodeskRevit开发一个插件,它是作为一个单独的DLL类库构建的。我正在尝试使用WpfToolKitPropertygrid在我的一个WPF窗口中。属性网格在VisualStudio中显示良好,智能感知也能正常工作。但是,当我尝试在加载加载项的情况下启动Revit时,出现以下异常。System.Windows.Markup.XamlParseExceptionoccurredHResult=-2146233087Message=Couldnotloadfileorassembly'Xceed.Wpf.Toolkit,PublicKeyToken=3e46

c# - 软件渲染模式——WPF

我有一个WPF用户控件,我需要在RenderMode.SoftwareOnly中强制呈现。由于我使用的是.NET3.5,因此我必须执行以下操作:varhwndSource=PresentationSource.FromVisual(this)asHwndSource;if(hwndSource!=null){hwndSource.CompositionTarget.RenderMode=RenderMode.SoftwareOnly;}但这不适用于我的应用程序,WPF程序在少数机器上崩溃,在注册表级别关闭硬件加速似乎可以解决问题。以上代码写在窗口的Loaded事件中。如果我是正确的,L

c# - WPF 图像到字节[]

我正在尝试将System.Windows.Controls.Image转换为byte[]并且我不知道Image类中的哪个方法可以帮助解决这个问题,顺便说一下,我真的不知道该怎么办,因为在我的LINQ模型中,该字段显示为Binary类型,如果我想将它保存为byte[],我必须更改它类型?我在此处找到了代码,但没有使用WPF:BitmapnewBMP=newBitmap(originalBMP,newWidth,newHeight);System.IO.MemoryStreamstream=newSystem.IO.MemoryStream();newBMP.Save(stream,Sys

c# - 来自控制台项目的 WPF 窗口?

我最近启动了一个C#项目(VS2008)作为“控制台”项目,我在其中编写了一些库、测试程序等。现在我想添加几个WPF窗口,但它看起来像控制台项目不会让我那样做的。我来自Java,所以这有点奇怪。我如何添加一个WPF表单(我将从我的“主”类实例化我自己? 最佳答案 接受的答案并不完全正确,恐怕,只需在您的主方法之前添加[STAThread]属性并引用正确的库(如System.Windows),您就可以添加wpf窗口了。编辑:在评论中@JamesWilkins为我提供了这个有用的链接:http://code-phix.blogspot.

c# - 动态添加多个按钮到 wpf 窗口?

我如何在C#中向一个窗口添加多个按钮?这是我需要做的...我从字典中获取多个用户值(在合理范围内,只有@5-6个值)。对于每个值,我需要创建一个按钮。现在,我如何命名按钮,而不是按钮内的文本?我如何为每个按钮定义“点击”方法(它们都不同)?如果我不再需要该按钮,该如何删除该按钮? 最佳答案 我会封装整个东西,通常命名按钮应该没有意义。像这样:publicclassSomeDataModel{publicstringContent{get;}publicICommandCommand{get;}publicSomeDataModel(

c# - WPF 中的 Windows 小工具 - 在激活 "Show desktop"时显示

我正在尝试使用WPF创建类似“小工具”的应用程序。目标是获得与普通Windows7小工具相同的行为:没有任务栏条目当您alt+tab窗口时不显示并不总是在最前面,应用程序可以在最前面执行“AeroPeek”时可见使用“显示桌面”/Windows+D时可见我已经能够完成前四个目标,但无法找到第五个问题的解决方案。我最接近的是使用HowdoyoudoAppBardocking(toscreenedge,likeWinAmp)inWPF?中的实用程序类,但这会将应用程序变成一个“工具栏”,从而将应用程序从屏幕上放置我的小工具GUI的部分中移除。我可以看到以前在Stackoverflow上提出