Tag: 儿童

以编程方式在Button内添加图像

在WPF中: 我怎样才能在C#中模仿这个? 我在Button类中找不到添加子项的任何方法。

C#/ mono:获取Windows和Linux上的子进程列表

我有以下代码通过与ntdll交互获取Windows上的子进程列表。 在Linux上有没有相当于’NtQueryInformationProcess’的东西,它是我指定进程的父进程的进程ID(如pbi.InheritedFromUniqueProcessId)? 我需要通过Mono在Linux上运行代码,所以我希望我只需要更改获得父进程ID的部分,以便代码与Windows上的代码保持一致。 public IList GetChildren( Process parent ) { List children = new List(); Process[] processes = Process.GetProcesses(); foreach (Process p in processes) { ProcessBasicInformation pbi = new ProcessBasicInformation(); try { uint bytesWritten; NtQueryInformationProcess(p.Handle, 0, ref pbi, (uint)Marshal.SizeOf(pbi), out bytesWritten); // == 0 is OK if (pbi.InheritedFromUniqueProcessId == parent.Id) children.AddRange(GetChildren(p)); } catch { } […]

WPF容器将所有子控件转为只读

我希望有一个WPF容器(面板,用户控件等)公开一个属性,以便将所有子项设置为只读(如果已设置)。 这应该就像将父控件设置为IsEnabled = false,这也会禁用所有子节点。 应该考虑哪些孩子及其属性是固定的(例如TextBox.ReadOnly,DataGrid.ReadOnly,…)。 我试图创建这样一个控件,它基本上迭代可视树的所有子项(递归)并相应地处理控件。 这种方法很好,除了进一步更改会影响可视树的情况,以便添加新的子项。 这适用于ContentControl或ItemsControl。 如果孩子们在浏览过后会被添加到可视化树中,那么它们显然不是只读的。 我试图找到一个好的事件来做出反应(基本上在视觉树中检测新的孩子),但是找不到合适的东西。 UpdateLayout被触发,但每次都经常通过可视树。 有办法解决这个问题吗? 是否有另一种方法可以通过父元素上的绑定将所有(相关)子节点递归设置为只读? (并且不会:我不希望将所有子项只读属性绑定到全局绑定。重点是将单个元素/部分传播给所有子节点)