wpf中怎么查找控件啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf中怎么查找控件啊相关的知识,希望对你有一定的参考价值。
这句winfrom 代码 Control title = (Control)(Controls.Find("label_title_ct", true)[0]);
wpf中怎么写啊
wpf由于大量使用模板,有时模板内的控件名称会不太方便查找,这时需要借助VisualTreeHelper和递归。
public static T FindChild<T>(DependencyObject parent, string childName)where T : DependencyObject
if (parent == null) return null;
T foundChild = null;
int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childrenCount; i++)
var child = VisualTreeHelper.GetChild(parent, i);
// 如果子控件不是需查找的控件类型
T childType = child as T;
if (childType == null)
// 在下一级控件中递归查找
foundChild = FindChild<T>(child, childName);
// 找到控件就可以中断递归操作
if (foundChild != null) break;
else if (!string.IsNullOrEmpty(childName))
var frameworkElement = child as FrameworkElement;
// 如果控件名称符合参数条件
if (frameworkElement != null && frameworkElement.Name == childName)
foundChild = (T)child;
break;
else
// 查找到了控件
foundChild = (T)child;
break;
return foundChild;
调用方法是这样的:
TextBox foundTextBox =UIHelper.FindChild<TextBox>(Application.Current.MainWindow, "myTextBoxName"); 参考技术A
简单好用,
/// 获取子控件
/// </summary>
/// <typeparam name="T">子控件类型</typeparam>
/// <param name="obj">父控件</param>
/// <param name="name">名称</param>
/// <returns></returns>
public static T GetChildObject<T>(DependencyObject obj, string name) where T : FrameworkElement
DependencyObject child = null;
T grandChild = null;
for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
child = VisualTreeHelper.GetChild(obj, i);
if (child is T && (((T)child).Name == name && !string.IsNullOrEmpty(name)))
return (T)child;
else
grandChild = GetChildObject<T>(child, name);
if (grandChild != null)
return grandChild;
return null;
参考技术B 楼上的是可以查出的,不过如果在DataGrid模板列里面用这种方法好像就不行了。 参考技术C FrameworkElement.
FindName 方法
查找具有提供的标识符名称(x:name)的元素。追问
Label title = (Label)FrameworkElement.FindName("label_cszs_title" );
我写完后是错误的非静态方法或字段
this.FindName
FrameworkElement指定父控件
wpf文件用啥打开?
这个格式文件没见过,是什么文件啊?怎么打开啊?
WinFX是下一代的Windows API,而WPF将是WinFX的核心一部分,用于处理UI, Document, Media和用户交互。微软关于WPF的网站:http://msdn.microsoft.com/windowsvista/building/presentation/
最新2月份的用户预览版可以从这里下载: http://msdn.microsoft.com/windowsvista/getthebeta/default.aspx
在msdn上有两个WPF讨论组:
1) http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=119
2) http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.windows.developer.winfx.avalon&lang=en&cr=US
另外还有几个关于WPF的Blog:
http://blogs.msdn.com/tims/ TimSneath的Blog
http://blogs.msdn.com/atc_avalon_team/default.aspx 这是微软工程院Avalon组的Blog
http://blogs.msdn.com/okoboji/ Kevin Moore (WPF PM)的blog
http://blogs.msdn.com/tims/articles/475132.aspx Tim Sneath给了一个WPF相关Blogger的列表
http://microsoft.sitestream.com/PDC05/ PDC05的一些Talk和Demo 参考技术A 请参考这里
http://zhidao.baidu.com/question/8761007.html 参考技术B 用金山的打开试一下呢?
以上是关于wpf中怎么查找控件啊的主要内容,如果未能解决你的问题,请参考以下文章
WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。
WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。