
WPF相关
WPF开发过程中遇到的问题及解决方法
旋风
这个作者很懒,什么都没留下…
展开
-
使用WPF的PopUp类实现父子窗口关联
一、POPUP窗口可以显示在屏幕任何地方,它们一般没有父窗口,但是如果明确调用SetParent,这类窗口也可以有父窗口。 [DllImport("user32.dll", EntryPoint = "SetParent")] public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);这样设置之后,popup窗口会做为子窗口嵌入进父窗口内。从效果上来看,几乎不再有Popup的特原创 2020-10-28 10:48:54 · 1010 阅读 · 1 评论 -
WPF程序退出后,进程未关闭
进程未关闭的原因: 1.有子线程未关关闭 2.父窗口ShowDialog方式弹出子窗口。在强制关闭父窗口之前,未对子窗口显式的关闭。这样的结果是,子窗口看似被关闭,但ShowDialog函数并不会返回。...原创 2020-10-28 10:32:14 · 1523 阅读 · 0 评论 -
WPF或C#自动生成系统代码_自动生成事件函数
同样,VS也可以使用快捷键的方法,自动生成事件函数。这样也可以提高编程的效率。以KeyDown事件为例,输入”this.KeyDown +=“后按TAB键,即可以生成事件函数 public Form1() { InitializeComponent(); this.KeyDown += Form1_KeyDown; ; } private void Form1_KeyDown(objec原创 2020-09-17 16:26:13 · 930 阅读 · 0 评论 -
WPF或C#自动生成系统代码_自动生成属性的方法
WPF或C#的编程过程中,经常需要用到属性或依赖。这时,如果全手动书写这些重复的代码太过于费时,还容易出错。而VS本身是有提供自动生成这类代码的快捷方式的。如:自动生成属性输入propa,按两次TAB键,即自动生成属性代码 public int MyProperty { get; set; }输入propdp,按两次TAB键,即自动生成依赖属性代码 public int MyProperty { get...原创 2020-09-17 16:18:02 · 1240 阅读 · 0 评论 -
WPF禁用指定键盘消息(如:alt+F4)的方法
如果要处理alt或ctrl等组合键,需要在窗外使用变量进行记录。以下代码以alt键为例,禁用alt+F4。alt键按下时,记录状态。并调用【e.Handled = true;】,意为消息已经处理,系统后续不再处理,从而达到禁用指定键盘消息的效果。 private bool AltKeyDown = false; private void Win_PreviewKeyDown(object sender, KeyEventArgs e) {原创 2020-09-11 16:37:06 · 1707 阅读 · 0 评论 -
WPF的MetroWindow风格窗口的SaveWindowPosition属性(自动保存前回窗口位置)的原理调查
<MetroControls:MetroWindow x:Class="MainWindowView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"... SaveWindowPosition="True"...>这里的SaveWindowPosition属性设置为True之后,就可以实现窗口前回最后停留的位置信息的保存和读取。经过调查发现,MahApps.Metr...原创 2020-08-07 09:10:48 · 905 阅读 · 0 评论 -
WPF程序的自定义控件内,Tab键不能切换焦点的问题
问题状况:自定义的控件内,包含两个按钮。程序加载后,userControl高亮,主窗口被禁用,默认焦点设置在A或B按钮上。如图。一旦切换到其它窗口(即当前窗口无效化),再切回窗口时。TAB键失效。解决方法:在userControl内处理1.当主窗口变为背景窗口时,即处理Deactivated事件,需要记录当前焦点。 focusElement = FocusManager.GetFocusedElement(Now_Grid);//Now_Grid是u...原创 2020-08-21 15:02:08 · 807 阅读 · 0 评论 -
WPF程序处理多屏显示的显示处理
多屏显示主要有以下情行:通常abcd比较常见,对应的坐标如图。WPF里,可以使用System.Windows.Forms.Screen类对多屏问题进行处理。如:1.指定一个控件,取得这个控件大部分区域让所在屏幕的详细信息 public static Screen FromControl(Control control);2.指定一个对象,取得这个指针的对象大部分区域在屏幕的详细信息 public static Screen FromHandle(IntP...原创 2020-08-21 15:45:27 · 1939 阅读 · 0 评论