草庐IT

WPF-Window

全部标签

c# - 每个列的 WPF DataGrid CustomSort

我有一个绑定(bind)到封装ObservableCollection的CollectionViewSource的WPFDataGrid。这个CollectionViewSource有两个主要目标:1)按T的特定属性对每个项目进行分组。我在GroupDescription中使用ValueConverter来获得我想要的分组行为。2)按a)主要是组名称(如上定义)和b)各个组项目对网格进行排序。我通过将自定义IComparer附加到CollectionViewSource的“CustomSort”属性来实现这一点。这在大多数情况下效果很好,但是一旦单击列标题,排序逻辑就会被覆盖。我不想禁

c# - 了解 WPF 派生 WIndow 类

我确信这很简单,但对于使用C#的WPF来说,这对我来说是新的。我知道从类继承并且已经做过很多次,比如在C#WinForms项目中......publicclassMyClass:DerivedFromClass{}但是,在WPF中遇到困难,这就是问题所在。我想构建我自己的一组控件,用作新学习项目的基线……预设我自己的样式、颜色、背景和其他功能。没问题。首先从WPF窗口开始并创建“MyWindow”。现在,我想采用这个基线“MyWindow”并将其子类化为另一个类MySubClassedWindow。因此,我创建了一个新的Window类,默认情况下,VS2010构建了窗体的设计器和代码部

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.