草庐IT

c# - 如何阻止 WPF KeyDown 事件从某些包含的控件(例如 TextBox)中冒出?

我的程序非常大,并且使用WPF,我想要一个使用“R”且没有修饰符的全局快捷键。有许多控件,如TextBox、ListBox、ComboBox等,它们都在控件本身内部使用字母,这很好-这对我来说是正确的。但是-我想阻止KeyDown事件冒泡到主窗口,例如,只要用户在文本框中键入字母“R”,它就会触发快捷方式。理想情况下,我希望能够做到这一点而不必指定(并执行if-then逻辑)每个可能接收正常字母按键的控件实例/类型(不仅仅是TextBox控件,尽管它们是最糟糕的违规者). 最佳答案 只需检查Window上的KeyDown事件处理程序

c# - WPF- 验证错误事件不会触发

我想我已经阅读了所有相关文章,但没有一篇有帮助..我试图通过错误状态启用/禁用datagrid的保存按钮-但没有成功。这是我的代码:承包商:AddHandler(Validation.ErrorEvent,newRoutedEventHandler(OnErrorEvent));XAML:代码隐藏:privateinterrorCount;privatevoidOnErrorEvent(objectsender,RoutedEventArgse){varvalidationEventArgs=easValidationErrorEventArgs;if(validationEventA

c# - 使用 InkCanvas 中的笔触裁剪 BitmapImage

我的任务是创建一个“Cinemagraph”功能,用户必须使用InkCanvas选择所需的区域来绘制选定的像素,这些像素在其余的动画/视频中应该保持不变(或者,选择应该“活着”的像素)。示例:我正在考虑从InkCanvas中获取Stroke集合,并使用它来裁剪图像并与未触及的图像合并。我该怎么做?我可以轻松地从磁盘加载图像,但如何根据笔画裁剪图像?更多详情:绘制并选择应保持静态的像素后,我有一个Stroke集合。我可以获得每个单独的Stroke的Geometry,但我可能需要合并所有几何图形。基于合并的Geometry,我需要反转(Geometry)并用于剪辑我的第一帧,稍后准备好剪辑

c# - 在多个窗口中使用 WPF WebBrowser 控件时发生内存泄漏

我正在开发一个使用WPFWebBrowser控件(System.Windows.Controls.WebBrowser)的项目。该程序的Web浏览器元素是用户可以参与的众多事件之一,并在单独的窗口中打开。用户离开浏览器后,窗口关闭,每次用户返回浏览器时都会创建一个新窗口。我们注意到在持续使用浏览器时,我们的程序出现了显着的内存泄漏/性能下降(使用量从最初的~200mb上升到~700mb)。在我们自己的代码中未能找到任何资源泄漏点之后,我决定确定问题是出在我们自己的WebBrowser包装器控件上,还是出在WPF控件上。我创建了一个新的简单项目,其中仅包含一个MainWindow和一个W

c# - 可扩展的 WPF 应用程序 - MEF、MAF 或简单加载?

(我知道其他MEF/MAF问题,但这是一个更具体的问题)我想创建一个基本上只是一个简单的加载项主机、GUI和设置的WPF应用程序。所有实际工作将由一个或多个插件完成。它们之间不需要通信,主应用程序会向它们发送用户输入/命令,它们会返回一些结果(例如,要呈现的WPFUI元素)。现在,由于应用程序的核心将基于插件,我需要选择一种好的方式来管理它们。我希望能够在运行时加载/卸载/重新加载它们(例如,当找到并下载更新时)。为了稳定性和安全性,它们可能应该在自己的应用程序域和/或进程中运行。通过一些研究和实验,我得出了三个选择:System.Addin(MAF):看来这可以满足我的所有需求。有一

c# - 呈现为 XPS 时如何创建带有页眉和页脚的 Xaml FlowDocument?

我正在寻找一种干净的通用方法来描述XAMLFlowDocument中重复的页眉和页脚,而无需任何代码。它只需要在从C#呈现到XPS时正确显示。 最佳答案 几个月前我遇到了同样的问题,发现这些链接非常有用:WPFMultipageReportsPartIVPaginationhttp://www.codeproject.com/KB/WPF/PimpedDocumentPaginator.aspx我使用的基本技术是通过从DynamicDocumentPaginator派生来创建自定义分页器,如下所示:internalclassHead

c# - NullReferenceException,没有堆栈跟踪...从哪里开始?

我有一个WPF音频应用程序。偶尔(甚至在调试器中)我会看到一个NullReferenceException,它不携带任何堆栈跟踪信息。如何开始调试这样的问题?一些背景:我正在P/调用WinMM.dll中的函数,其中涉及注册一个callback调用waveOutOpen时[DllImport("winmm.dll")]publicstaticexternMmResultwaveOutOpen(outIntPtrphwo,IntPtruDeviceID,WaveFmtpwfx,WaveCallbkdwCallback,IntPtrdwInstance,intfdwOpen);事实证明,这很

c# - 我如何优先考虑 WPF 文本框自动换行?

在很多情况下,我的面板或网格会自动调整大小,但如果它们包含带有TextWrapping="Wrap"的TextBox,则TextBox在真正需要之前很久就继续向右扩展面板/网格,如下图:我想要做的是让TextBox在尝试向右扩展之前通过换行文本来填充其区域。该问题的一个简化示例是:我在StackOverflowhere上发现了类似的问题,但发布的最佳解决方案不允许TextBox展开。该解决方案类似于:除了用修改后的行为扩展TextBox之外还有什么想法吗? 最佳答案 有一个简单的技巧可以使其正常工作。使用Canvas,然后将文本框的

c# - 在属性上设置绑定(bind)时是否会触发事件?

我遇到了一个问题,我需要了解对我的对象的依赖属性进行的所有绑定(bind)。目前,只要我的数据上下文发生变化,我就会遍历依赖属性,并寻找绑定(bind)表达式。但我发现在某些情况下(TabControls),似乎首先设置数据上下文,然后应用来自XAML的绑定(bind)。那么,有没有一种方法可以检测应用到我的依赖项属性之一的绑定(bind)? 最佳答案 假设您在UserControl中,您应该能够使用Loaded为此事件。当“元素被布置、呈现并准备好进行交互”时,该事件被触发。我只能假设这意味着绑定(bind)已经完成。然后您可以在

c# - System.IO.File.Move--如何等待移动完成?

我正在用C#编写一个WPF应用程序,我需要移动一些文件——问题是我真的真的需要知道这些文件是否成功。为此,我写了一个检查以确保文件在移动后到达目标目录——问题是有时我在文件移动完成之前就进行了检查:System.IO.File.Move(file.FullName,endLocationWithFile);System.IO.FileInfo[]filesInDirectory=endLocation.GetFiles();foreach(System.IO.FileInfotempinfilesInDirectory){if(temp.Name==shortFileName){ret