我在How can I find WPF controls by name or type?中发现了一些有趣的问题,但我只想让我的方法返回其中的所有控件。只要该方法返回了他可以找到的所有可能的控件,那么控件的名称或类型并不重要。如何查找控件(WPF,C#)中的所有控件?
1
A
回答
0
在的WinForms这是很容易...只是抢的WinForms容器,然后将概率” .Controls'属性和遍历控件集合返回。
foreach (System.Windows.Forms.Control ctrl in form.Controls)
{
if (ctrl.Name == "tabPageControl")
{ // do something with 'tabPageControl object' }
{
正如你可以看到的WinForms其死很容易在全球集装箱返回一个“的ControlCollection”,然后通过迭代,甚至更深如果面板或类似的东西来获得访问权。一旦你找到你想要的只是建立一个可以找到的东西的列表,然后对你的列表或你的控件做些什么。
在WPF,这有点不同。我没有丰富的经验,WPF,但之后打约我15分钟想出了这一点:
private void button1_Click(object sender, RoutedEventArgs e)
{
// cast out Grid object.
Grid grd = (Grid) this.Content;
// do simple testing to find out what the type is.
string s = grd.ToString();
// in VS, in debug mode, hover 'grd.Children' and Smart Tool Tip that pops
// it will tell exactly under a 'count' property how many controls there are sitting
// on the global container. For me it was just 1, my Button.
foreach (UIElement child in grd.Children)
{
// do some more testing to make sure have got the right control. pref in an If statement but anyhooo.
String sss = child.GetType().FullName;
// cast out the appropriate type.
Button myWpfButton = (Button)child;
}
}
我希望这就是足够多的让你开始。
0
这取决于父控制的类型。如果它是ContentControl的扩展,它只能有一个在Content属性下找到的子元素。 如果它是Panel的扩展,它可以有许多子元素,它们在Children属性下找到。
没有保证,任何这些子元素都一定控制,但 - 你需要做某种类型的检查,以确认它们是否是你感兴趣的类型
这仅是也。对于单一层次的父子层次结构,但是应该足够简单,以便在需要所有子控件时进行递归。
相关问题
- 1. 查找所有子控件WPF
- 2. 找到ItemsControl中的所有控件 - WPF
- 3. WPF RichTextBox控件,如何查找所有斜体字
- 4. 如何在Android Studio中查找控件的所有事件?
- 5. 查找WPF窗口的所有控件的类型
- 6. 在WPF中查找另一个控件内的控件
- 7. 查找WPF控件在视口中
- 8. WPF找到控件
- 9. 我如何循环选项卡控件(wpf)中的所有控件?
- 10. 查找TreeView控件C#
- 11. foreach SomePanel.Controls中的控件控件没有获得所有控件
- 12. 查找C#中的控件样式
- 13. WPF DependencyProperty覆盖所有控件的Uid
- 14. WPF - 如何找到控件所在的选项卡
- 15. 查找控件内的ListView控件
- 16. 如何在datalist panel1控件中查找控件?
- 17. C#WPF控件中的控件和区分LeftClick事件!
- 18. 寻找控制在WPF控件模板
- 19. 从WPF窗口访问所有控件
- 20. 如何在Datalist1中查找控件?
- 21. 寻找在WPF itemscontrol控件
- 22. 如何在C#中查找中继器的div控件?
- 23. 有没有办法在wpf WebBrowser控件上呈现WPF控件?
- 24. Silverlight:查找布局中的所有类型控件
- 25. 在UIView中查找一个类型的所有控件
- 26. 在Silverlight中查找所有TextBox控件的通用方法
- 27. 查找ASP.NET面板中的所有控件?
- 28. 为什么不是WPF控件中的所有事件
- 29. 在WPF窗口中禁用除一个子控件之外的所有控件
- 30. 如何填充WPF自定义控件中的集合控件?