草庐IT

wpf-grid

全部标签

c# - 在 WPF 中一次快速绘制大量矩形

我的应用程序接收来自外部设备的数据。每个数据点后,有一个短的电子死区时间(大约10µs),其中没有其他数据点可以到达,我的应用程序应该使用它来处理和显示散点图中屏幕上的数据。我最重要的目标是不超过这个电子死区时间。如何在基于WPF的应用程序中解决这个问题,以及对不同方法进行基准测试的方法是什么?我尝试过的是:在Canvas中为每个到达的数据点创建一个Rectangle。这太慢了10倍。相同的方法,但在自定义控件中绘制DrawingVisuals。好多了,但还是有点太慢了。向树中添加视觉/逻辑子项可能会产生过多的开销。一个UserControl,其中所有数据点都存储在一个数组中并显示在O

c# - WPF 自定义控件构造、触发器和事件

我想构建一个新的自定义控件。我发现很少有教程能给我一些关于如何实现这一目标的线索。据我了解,创建新的自定义控件总是通过扩展当前控件来完成的,甚至可以扩展来自层次结构最基本级别的控件,例如,您甚至可以扩展:UI元素框架元素控制内容控制标题内容控件项目控制选择器范围基准如以下教程中所写:http://wpftutorial.net/HowToCreateACustomControl.html因此,我按照教程创建了一个自定义控件库类型的新项目,得到了我的通用.xaml和我的代码。到目前为止一切顺利。我可以区分3种类型或类别的事件。将由将使用我的控件的窗口(或容器)使用的事件:这些是我想向外部

c# - 在 WPF 中,由于空引用导致绑定(bind)失败时是否使用 FallbackValue?

我的View模型公开了一个名为MyList的列表,该列表可能为空或null。我有一个要基于此状态隐藏的元素。如果MyList为空或null,则应折叠该元素。如果它有元素,那么它应该被显示。这是我的DataTrigger:当MyList为null时,此DataTrigger会发生什么情况?它会使用FallbackValue还是会失败?这在某处记录了吗? 最佳答案 FallbackValue在绑定(bind)源路径未解析、转换器失败或值对属性类型无效时使用。如果返回null则不会使用它,除非null对属性类型无效。在这种情况下,Data

c# - 在 WPF 中创建自定义表单?

我目前正在学习WPF。到目前为止我真的很享受。我喜欢制作美观的应用程序是多么容易,并且想创建一个具有自定义窗口边框的应用程序。我希望它看起来像这样:我知道我可以轻松地将Window类型更改为没有边界,然后从那里开始,但这似乎很像WinForms。只创建一个派生自Window的类并为其设置样式不是更好吗?如果是这样,我该怎么做?谢谢! 最佳答案 这是一篇关于使用WPF自定义窗口“chrome”的精彩文章:CustomWindowChromeinWPF它附带一个代码库项目,您可以从中下载代码:WPFChrome

C# WPF 在运行时向主窗口添加控件

我的目标是在应用程序运行时附加一个新的图像控件。img=newSystem.Windows.Controls.Image();img.Margin=newThickness(200,10,0,0);img.Width=32;img.Height=32;img.Source=etc;我试过了this.AddChild(img);//saysmustbeasingleelementthis.AddLogicalChild(img);//doesnothingthis.AddVisualChild(img);//doesnothing用表单添加元素从未如此困难。我怎样才能简单地将这个新元素附

c# - WPF DataGrid 列标题使用自定义样式调整大小

我有一个带有自定义模板列和标题样式的WPFDataGrid(.NET4),并且希望能够调整列的大小:列仍然可以排序和重新排列,但不能调整大小-夹具不显示。我看过this回答并查看了Thumb控件,但这似乎是重现已经提供的功能的巨大矫枉过正。MSDN博客文章引用了他们未提供的StaticResource-RowHeaderGripperStyle! 最佳答案 我总是这样做,而且效果很好: 关于c#-WPFDataGrid列标题使用自定义样式调整大小,我们在StackOverflow上找到一

c# - WPF 中 ContextMenu 中的 CommandParameters

我有一个场景,我有一个WPFTreeView控件,它的项目有一个HierarchicalDataTemplate。现在在HierarchicalDataTemplate中,我有一个Label并且Label有一个ContextMenu和一个的菜单项删除。Delete菜单项绑定(bind)到名为DeleteCommand的命令,该命令是已设置为HierarchicalDataTemplate的DataType的类的一部分。现在,我想在ContextMenu的Delete菜单项的DeleteCommand的CommandParameters中传递TreeView控件,这样我可以在删除当前选定

c# - 在 WPF M-V-VM 中撤消,它如何适应?

在我以前的项目中,我已经用c++实现了撤销系统,我知道它是如何工作的。我也知道命令模式。我将实现一个C#/WPF桌面应用程序,并希望我的设计基于M-V-VM模式。应用程序将:是一个相对较小的项目(1名开发人员预计工作2-3周)拥有一个具有持久性的简单数据模型(linqtoXML)支持撤销/重做我想知道是否有人在遵循M-V-VM模式时有过实现撤消系统的经验。它如何适合它?它如何从INotifyPropertyChanged和INotifyCollectionChanged通知中获益,以便在实现模型(业务对象)时需要最少的工作。我认为撤消系统会以某种方式集成到ViewModel层中,因为它

c# - WPF 数据绑定(bind) : enable/disable a control based on content of var?

我的表单上有一个按钮,只有在TreeView(或tabitem中的ListView)中选择了一个项目时才应启用该按钮。选择一个项目时,它的值存储在一个字符串成员变量中。我可以将按钮的IsEnabled属性绑定(bind)到成员var的内容吗?也就是说,如果成员var不为空,则启用该按钮。同样,当成员变量的内容发生变化(设置或清除)时,按钮的状态也应发生变化。 最佳答案 由于您可能希望根据字符串绑定(bind)按钮的IsEnabled属性,请尝试为它创建一个转换器。即...和转换器:[ValueConversion(typeof(st

c# - 如何将 Wpf 窗口设置为 Winforms 窗体的所有者

如何将System.Windows.Window设置为System.Windows.Forms.Form的所有者?在我搜索了一段时间之后才意识到我已经在我的一个实用程序类中找到了答案,我决定将答案放在stackoverflow上。希望有人觉得这很有用。 最佳答案 使用这个方法:[DllImport("user32.dll")]privatestaticexternintSetWindowLong(HandleRefhWnd,intnIndex,intdwNewLong);//////setstheownerofaSystem.Win