1.
DispatcherUnhandledException 事件处理程序接受一个传递给它的 DispatcherUnhandledExceptionEventArgs 参数,该参数包含关于未处理异常的上下文信息,其中包括异常本身 (DispatcherUnhandledExceptionEventArgs..::.Exception)。使用该信息可以确定如何处理异常。
在处理 DispatcherUnhandledException 时,应当将 DispatcherUnhandledExceptionEventArgs..::.Handled 属性设置为 true;否则,WPF 仍会将异常视为未处理的异常,并恢复前面描述的默认行为。如果引发未处理的异常,并且或者 DispatcherUnhandledException 事件未被处理,或者该事件被处理但 Handled 被设置为 false,则应用程序会立即关闭。而且,不会再引发其他 Application 事件。因此,如果应用程序具有必须在应用程序关闭之前运行的代码,则需要处理 DispatcherUnhandledException。
2.
对于在主 UI 线程上运行的代码未处理的每个异常,Application 都将引发一个 DispatcherUnhandledException
3.
Invoke 是同步操作,而 BeginInvoke 是异步操作
4.
Pack URI 方案使用“pack”作为它的方案,并且包含两个组件:授权和路径。以下是 pack URI 的格式。
pack://授权/路径
授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置
5.
为了确定 pack URI 引用的文件的类型,WPF 使用下面的试探法来解析本地程序集中的资源文件以及内容文件的 URI:
-
探测与 pack URI 匹配的 AssemblyAssociatedContentFileAttribute 属性的程序集元数据。
-
如果找到 AssemblyAssociatedContentFileAttribute 属性,则 pack URI 的路径引用内容文件。
-
如果未找到 AssemblyAssociatedContentFileAttribute 属性,则探测被编译到本地程序集中的资源文件集。
-
如果找到与 pack URI 的路径匹配的资源文件,则 pack URI 的路径引用资源文件。
-
如果未找到合适的资源,则内部创建的 Uri 无效。
6.
如果未处理 Closing,或者处理但未取消,则窗口将关闭。在窗口真正关闭之前,会引发 Closed。这时无法阻止窗口关闭。只有在Closing事件里才能阻止窗口关闭
7.
应将按 Esc 键配置为与按“取消”按钮等效的键盘快捷键。可以通过将“取消”按钮的 IsCancel 属性设置为 true 来实现此目的。
应将按 Enter(或 Return)键配置为与按“确定”按钮等效的键盘快捷键。可以通过将“确定”按钮的 IsDefault 属性设置为 true 来实现此目的。
8.
递归检查一个控件及其子控件内,是否有Validation是failed的
// Validate all dependency objects in a window
bool IsValid(DependencyObject node)
{
// Check if dependency object was passed
if (node != null)
{
// Check if dependency object is valid.
// NOTE: Validation.GetHasError works for controls that have validation rules attached
bool isValid = !Validation.GetHasError(node);
if (!isValid)
{
// If the dependency object is invalid, and it can receive the focus,
// set the focus
if (node is IInputElement) Keyboard.Focus((IInputElement)node);
return false;
}
}
// If this dependency object is valid, check all child dependency objects
foreach (object subnode in LogicalTreeHelper.GetChildren(node))
{
if (subnode is DependencyObject)
{
// If a child dependency object is invalid, return false immediately,
// otherwise keep checking
if (IsValid((DependencyObject)subnode) == false) return false;
}
}
// All dependency objects are valid
return true;
}
9.
Remember, the property wrappers shouldn’t contain any logic, because properties
may be set and retrieved directly using the SetValue() and GetValue() methods of the base
DependencyObject class.
分享到:
相关推荐
**WPF周报记录程序**是一个使用Windows Presentation Foundation(WPF)框架开发的应用程序,它专为记录工作周报而设计。WPF是.NET Framework的一部分,由Microsoft开发,提供了丰富的用户界面(UI)功能,包括数据...
wpf写的错误日志记录。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
通过以上步骤,我们就能实现一个基于ini文件记录当前语言的WPF多语言应用。这种方法的优点在于它允许用户自定义界面语言,同时保持配置的轻便性。不过,需要注意的是,对于大型项目,可能需要考虑更复杂的本地化策略...
// 每页显示10条记录 PaginationControl.ItemsSource = view; ``` 最后,确保在主界面设计时,控件的样式与整体应用风格保持一致,可以通过修改控件模板来自定义其外观。在资源字典中定义一个新的样式,并在控件...
在.NET开发领域,尤其是使用C#进行Windows Presentation Foundation(WPF)应用开发时,日志管理是一个非常重要的实践。Log4net是Apache软件基金会的一个开源项目,它为.NET应用程序提供了强大的日志记录功能。本...
【标题】"购房赃款记录财务软件C#基于WPF框架编写"涉及到的主要知识点包括C#编程语言、Windows Presentation Foundation(WPF)框架以及财务管理软件的开发。这是一款专为记录购房付款流程设计的财务软件,它利用了...
为了生活中,工作中记住要记录的东西,以便查询(包括:工作相关信息,生活常识,笑话等),而做的一个小软件以下称notes。 因为我是做Winform程序的,所以notes的初期是用winForm做的;后来学习了wpf,又把软件界面...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和MVVM(Model-View-ViewModel)设计模式来模拟微信PC版的应用程序。这个项目不仅涵盖了基础的UI设计,还包括了实现微信的关键功能,如扫码...
首先,在鼠标按下时记录当前位置,然后在鼠标移动事件中计算差值并更新控件的位置。最后,当鼠标释放时,停止更新。 2. **缩放**:实现缩放功能,通常会使用MatrixTransform或ScaleTransform。用户可以通过滑动条或...
在.NET框架4.5环境下,使用Visual Studio 2017开发WPF(Windows Presentation Foundation)应用程序时,我们可以实现录音和播放音频的功能。这涉及到多媒体处理和用户界面交互,是许多应用,如聊天软件、教育工具等...
一个完善的人员管理系统通常包括员工信息管理、权限分配、考勤记录、工资计算等功能。在WPF环境中,这些功能可以通过各种控件和数据绑定技术实现。例如,可以使用ComboBox来选择员工的职位,DatePicker用于输入入职...
WPF_log4net示例包含 1、在线更新。 2、log4net日志输出。
在这个场景中,WPF被用来创建一个能够捕捉和记录屏幕活动的界面。 项目1:录制屏幕 这个项目的目标是创建一个能够捕获用户电脑屏幕的程序。在WPF中,我们可能需要使用System.Windows.Media命名空间下的类,如...
- **添加**:在DataGrid底部通常会有一个“新增”按钮,当用户点击时,可以通过在数据源中添加新行来创建新的记录。可以使用`DataGrid.ItemsSource.Add()`方法添加新项。 - **删除**:用户选择一行后,点击“删除...
在Windows Presentation Foundation (WPF)框架中,DataGrid控件是一种强大的数据展示工具,它允许用户以表格形式显示和操作数据。默认情况下,WPF DataGrid的列支持拖放功能,用户可以方便地调整列的位置。然而,...
10. **异常处理和日志记录**:为了确保软件的稳定性和可维护性,良好的异常处理和日志记录机制是必不可少的。 学习这个硬件管理系统(WPF),开发者可以深入理解C#编程、WPF框架、MVVM模式以及如何与硬件设备交互。...
1. **ILSpy.exe.config**:这是ILSpy应用程序的配置文件,它定义了程序运行时的环境设置和行为,例如日志记录、内存使用等。通过修改此配置文件,用户可以定制ILSpy的行为以适应自己的需求。 2. **ICSharpCode....
在本文中,我们将深入探讨如何使用C#编程语言和Windows Presentation Foundation(WPF)框架创建一个仿照Windows操作系统内置计算器的版本。WPF是.NET Framework的一部分,它为开发富客户端应用程序提供了强大的支持...
数据库部分可能包括了物资信息、入库记录、出库记录等关键表的设计,可能采用关系型数据库管理系统,如SQL Server。"SQL.rar"可能是数据库脚本或者数据库备份文件,用于恢复和操作库存数据。通过这个数据库,开发者...