草庐IT

c# - WPF 应用程序退出代码

我正在尝试设置和获取应用程序退出代码。我正在尝试做以下事情:protectedoverridevoidOnStartup(StartupEventArgse){base.OnStartup(e);if(e.Args.Length!=0){}else{newMainWindow().ShowDialog();}Environment.ExitCode=110;this.Shutdown();}然后我尝试在cmd中通过echo%ERRORLEVEL%获取它但我总是得到0的结果,知道是什么问题吗? 最佳答案 对于WPF,试试Applica

c# - WPF 数据网格 : Clear column sorting

我在我的应用程序中使用WPF数据网格,可以通过单击标题对列进行排序。我想知道是否有任何方法可以以编程方式清除列的排序?我尝试对一列进行排序,然后清除MyDataGrid.Items.SortDescriptions,但该集合为空(即使对一列进行了排序)。我也试过:MyDataGridColumn.SortDirection=null;问题是列指示消失了,但是在编辑单元格和切换行时排序仍然出现。有没有办法清除列的排序?编辑(为清楚起见):问题是如果用户重新单击同一列标题,我想允许再次排序,因此将CanUserSort设置为false会有问题,即使它是在XAML中完成的.简而言之,我正在尝

c# - 查找所有子控件 WPF

我想找到一个WPF控件中的所有控件。我看过很多示例,似乎它们都需要将名称作为参数传递,或者根本不起作用。我有现有的代码,但它不能正常工作:publicstaticIEnumerableFindVisualChildren(DependencyObjectdepObj)whereT:DependencyObject{if(depObj!=null){for(inti=0;i(child)){yieldreturnchildOfChild;}}}}例如,它不会在TabItem中获取DataGrid。有什么建议吗? 最佳答案 你可以使用这

c# - WPF:组合框的下拉列表突出显示了文本

当我在组合框中输入内容时,我会自动打开启用下拉列表searchComboBox.IsDropDownOpen=true;这里的问题是-文本被突出显示,下一个按键会覆盖之前的文本。如何在ComboBoxDropDown打开时禁用文本突出显示? 最佳答案 我遇到了同样的问题,就像一些刚接触WPF的用户一样,努力让EinarGuðsteinsson提供的解决方案发挥作用。因此,为了支持他的回答,我在这里粘贴了使它起作用的步骤。(或者更准确地说,我是如何让它发挥作用的)。首先创建一个继承自组合框类的自定义组合框类。请参阅下面的代码以了解完整

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上找到一