首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Silverlight中查找所有TextBox控件的通用方法

在Silverlight中查找所有TextBox控件的通用方法是使用递归函数。以下是一个C#示例,展示了如何在Silverlight应用程序中查找所有TextBox控件:

代码语言:csharp
复制
using System.Windows;
using System.Windows.Controls;
using System.Collections.Generic;

public static class UIHelper
{
    public static List<TextBox> GetAllTextBoxes(DependencyObject parent)
    {
        List<TextBox> textBoxes = new List<TextBox>();
        int numChildren = VisualTreeHelper.GetChildrenCount(parent);
        for (int i = 0; i < numChildren; i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(parent, i);
            TextBox textBox = child as TextBox;
            if (textBox != null)
            {
                textBoxes.Add(textBox);
            }
            else
            {
                List<TextBox> childTextBoxes = GetAllTextBoxes(child);
                textBoxes.AddRange(childTextBoxes);
            }
        }
        return textBoxes;
    }
}

在这个示例中,我们定义了一个名为UIHelper的静态类,其中包含一个名为GetAllTextBoxes的静态方法。该方法接受一个DependencyObject类型的参数,该参数表示要在其中查找TextBox控件的UI元素。该方法使用VisualTreeHelper类来遍历UI元素的可视化树,并在遍历过程中查找TextBox控件。

要使用此方法,只需将要搜索的UI元素(如Grid或StackPanel)作为参数传递给GetAllTextBoxes方法。例如:

代码语言:csharp
复制
List<TextBox> textBoxes = UIHelper.GetAllTextBoxes(myGrid);

在这个示例中,myGrid是一个Grid控件,包含了多个TextBox控件。调用UIHelper.GetAllTextBoxes(myGrid)方法后,textBoxes列表将包含myGrid中的所有TextBox控件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

温故而知新:WinFormSilverlight多线程编程如何更新UI控件

单线程winfom程序,设置一个控件值是很easy事情,直接 this.TextBox1.value = "Hello World!"....Text = obj.ToString(); }  运行时,会报出一个无情错误: 线程间操作无效: 从不是创建控件textBox1”线程访问它。...究其原因,winformUI控件不是线程安全,如果可以随意在任何线程改变其值,你创建一个线程,我创建一个线程,大家都来抢着更改"TextBox1"值,没有任何秩序的话,天下大乱......}     } } 3.利用SynchronizationContext上下文 -- 最神秘方法(Winform/Silverlight能用) 之所以说它神秘,是因为msdn官方对它解释据说也是不清不楚...(Winform/Silverlight通用) BackgroundWorker会在主线程之外,另开一个后台线程,我们可以把一些处理放在后台线程处理,完成之后,后台线程会把结果传递给主线程,同时结束自己

1.8K50

C++ 无序字符串查找所有重复字符【两种方法

参考链接: C++程序,找出一个字符ASCII值 C++ 无序字符串查找所有重复字符   Example:给定字符串“ABCDBGAC”,打印“A B C”  #include <iostream...    string s = a;     for (int i = 0; i < s.size() - 1; i++)     {         if (s[i] == '#') //判断i指针指向是否为输出过字符...            continue;         int m = 1; //判断j指针指向是否为输出过字符         for (int j = i + 1; j <= s.size...                if (m == 1)                     cout << s[i] << " ";                 s[j] = '#'; //对输出过字符做标记...                m = 0;      //对输出过字符做标记             }         }     } } void PrintIterateChar2(const

3.8K30
  • 好用VisualTreeExtensions

    前言 A long time ago in a galaxy far, far away....微软Silverlight Toolkit里提供了一个好用VisualTreeExtensions,里面提供了一些查找...,日常我常用到Wpf上也没问题就是以上功能。...不过ComboBoxPopup逻辑树是存在,如果ComboBoxItem想获取ComboBoxVisualTree祖先元素,可以配合逻辑树查找。...其它方案 很多控件库都封装了自己查找VisualTree工具类,下面是一些常见控件方案: WindowsCommunityToolkitVisualTree Extended WPF Toolkit...结语 VisualTreeExtensions代码很简单,我估计UWP也能使用,不过UWP已经WindowsCommunityToolkit中提供了一个新版本,只因为出于习惯,我还在使用Silverlight

    1.2K30

    silverlight 《Hands-On-Labs》教程系列

    [在这个教程你会看到如何使用多种访问远程数据方法,你将使用除了WCF,web serviceWebClient, Downloader和 WebRequest来获取数据.LINQ to XML和数据绑定都已经...silverlight得到了支持.最后你将有sl中使用ASP.NET Extensions Preview提供ADO.NET Data Services和feed syndication support...[建立可重复使用控件就是自定义用户控件.自定义用户控件是从System.Windows.Controls.Control继承下来.举个例子 TextBox控件就像一个容器控件一样.和asp.net非常相似....你可以使用designer工具去设计界面然后添加事件,设置属性.在后置代码 调用方法.这个控件包可以在你开发项目中就像内置空间一样使用.此外你可以添加属性,方法,事件到你控件来制定更加适应控件...[设个教程你将会看到如何使用css来Silverlight plug-in进行交互.如何建立适应浏览器大小变化Silverlight,如何融合HTML和Silverlight,如何在浏览器和c#访问

    91470

    OLE控件Direct3D渲染方法

    Windows上图形绘制是基于GDI, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows控件会有很多问题 那么, 有什么办法让GDI绘制内容3D显示出来?...前段时间研究浏览器游戏中嵌入, 基本思路就是在后台打开一个浏览窗口, 然后把它显示内容拷贝到一张纹理上, 再把纹理D3D绘制出来, 至于事件处理就要另做文章了....后来发现了BitBlt这一速度很快复制方法, 才有了实用价值: 1. 取得控件DC: GetDC(hWnd) 2....nYSrc,   // y-coordinate of source upper-left corner   DWORD dwRop  // raster operation code ); 如果是OLE控件那就更简单啦...        pSurface->ReleaseDC(hdcTexture);         pSurface->Release();     } Show一下: 不光是浏览器啦, 任何OLE控件都可以

    79650

    OLE控件Direct3D渲染方法

    Windows上图形绘制是基于GDI, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows控件会有很多问题 那么, 有什么办法让GDI绘制内容3D显示出来?...前段时间研究浏览器游戏中嵌入, 基本思路就是在后台打开一个浏览窗口, 然后把它显示内容拷贝到一张纹理上, 再把纹理D3D绘制出来, 至于事件处理就要另做文章了....后来发现了BitBlt这一速度很快复制方法, 才有了实用价值: 1. 取得控件DC: GetDC(hWnd) 2....nYSrc,   // y-coordinate of source upper-left corner   DWORD dwRop  // raster operation code ); 如果是OLE控件那就更简单啦...不光是浏览器啦, 任何OLE控件都可以, 可以发挥你想像力:

    92920

    Silverlight企业应用框架设计【六】自定义系统菜单(使用自己DataForm)

    (自己实现RiaService) SilverLight企业应用框架设计【三】服务端设计 SilverLight企业应用框架设计【二】框架画面 SilverLight企业应用框架设计【一】整体说明 首先我们设计窗体如下...所有的业务窗体都继承自BasePage类 这也是为什么xaml代码开始处是<location:BasePage…. 2....由于左侧控件和右侧Grid控件中间 有个GridSplitter控件 所以可以自由拖动GridSplitter控件以变化左右两侧控件大小 树控件我们暂且不提(没有什么特殊地方) ------...------------------- 加载页面的Loaded事件执行了如下代码 private void LayoutRoot_Loaded(object sender, RoutedEventArgs...而是直接创建了树控件控件来赋值(这与我们数据结构有关,这样做更简便一些) MenuM类型并不是一个自引用类型(没有记录ParentMenu只记录了ParentId) 其中InitParentMenu

    67810

    Linux查看所有正在运行进程方法

    ps命令 输入下面的ps命令,显示所有运行进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端包括其它用户所有进程 x:显示无控制终端进程 任务:查看系统每个进程...命令提示行输入top: # top 输出: image.png 按q退出,按h进入帮助。 任务:显示进程树状图。 pstree以树状显示正在运行进程。树根节点为pid或init。...pgrep能查找当前正在运行进程并列出符合条件进程ID。...例如显示firefox进程ID: 任务:查找进程 $ pgrep firefox 下面命令将显示进程名为sshd、所有者为root进程。...输入下面的命令启动atop: 到此这篇关于Linux查看所有正在运行进程方法文章就介绍到这了,更多相关Linux查看正在运行进程内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

    41.3K42

    Silverlight学习(三)

    silverlight客户端需要新建ViewModel和Views文件夹,解决方案截图如下。 ? 这里需要注意是,ado.net实体数据模型需要进行一定设置才能引用。...一般需要删除两个后缀为.tt文件,并在添加模型时需要启用编辑。 3.silverlight服务端添加表userinfo实体数据模型,并建立基于此模型domainservice类。...View文件夹建立userview silverlight用户控件。...(1)数据加载 silvertlightDatagrid绑定实体或者集合。我们通过domainservice提供load方法能够获得数据表实体集合。...,发现数据增删改查并没有及时UI显示,后来通过重新加载方法得意实现,不知道还有没有更好方法

    75780

    Silvelright:ListBox无法用Tab顺序切换内部元素焦点解决

    默认情况下,Silverlight自带ListBox控件如果内部有多个TextBox,用户无法用键盘上Tab键,ListBox内部TextBox之间切换。...但Teterik RadControls telerik:ListBox却很好解决了这个问题,只要把telerik:ListBoxIsTabStop设置成false,同时把TabNavigation...Text="下面是Silverlight自带ListBox" HorizontalAlignment="Center" VerticalAlignment="Center"/>...  意外惊喜:之前写过一篇博文,讲述了 Silverlight自带ListBox,无法应用BlendMouseDragElementBehavior(即...:应用该行为仍然无法拖动ListBox),但是telerik:ListBox发现居然可以(本例,用鼠标按住telerik:ListBox任一文本框边框,即可拖动整个ListBox)--商业控件就是给力

    1.2K100

    Silverlight 4 RIA Service dataform Template, 代码选择控件,Validate验证使用技巧

    Silverlight 4 RIA Service dataform Template, 代码选择控件,Validate验证使用技巧 功能 定义只读,新增,编辑三块模块 定义模板目的是更好复用和提高...下面是一个归并关系维护界面。 ? ? 主要有表头,多个表体组成,为了把所有操作尽量一个页面完成,表头使用一个DataForm空间,表体使用DataGrid和DataForm组合实现。...自定义代码选择控件,快速输入控件 最常见单机放大镜弹出所有记录选择后返回页面或是一个TextBox输入一个代码(料号)自动带出名称,单位,单价等信息实现快速输入。...如果用asp.net需要写需要JavaScript代码,而使用Silverlight则非常容易就能实现。 ? XAML代码; ? 通过把需要带出字段绑定到自定义控件上。...为了提高代码可读性,推荐使用匿名方法 类似的简单CodeValue选择使用AutoCompleted控件自己小改一下便可实现 ?

    80450

    Linux 查找 IP 地址 3 种简单方法

    Linux 系统,经常需要查找 IP 地址以进行网络配置、故障排除或安全管理。...无论是查找本地主机 IP 地址还是查找其他设备 IP 地址,本文将介绍三种简单方法,帮助你 Linux 轻松找到所需 IP 地址。...要查找本地主机 IP 地址,可以执行以下命令: ifconfig 上述命令将显示当前系统上所有网络接口详细信息,包括 IP 地址。通常,IP 地址会显示以 "inet" 开头。...要查找 IP 地址,可以执行以下命令: ip addr show 上述命令将显示所有网络接口详细信息,包括 IP 地址。IP 地址通常显示以 "inet" 开头。...总结 通过上述三种简单方法,你可以 Linux 查找 IP 地址。这些方法提供了不同命令行工具,适用于不同需求和使用场景。

    14.1K31

    Linux如何查找最大10个文件方法汇总

    本教程,我们将教您如何使用以下四种方法 Linux 系统查找最大前 10 个文件。 方法 1 Linux 没有特定命令可以直接执行此操作,因此我们需要将多个命令结合使用。.../:整个系统(从根目录开始)查找 -type:指定文件类型 f:普通文件 -print0:标准输出显示完整文件名,其后跟一个空字符(null) |:控制操作符,将一条命令输出传递给下一个命令以供进一步处理...:输出文件开头部分命令 n -10:打印前 10 个文件 方法 3 这里介绍另一种 Linux 系统搜索最大前 10 个文件方法。...:仅显示每个参数总和 -h:用可读格式打印输出 {}:递归地查找目录,统计每个文件占用磁盘空间 方法 4 还有一种 Linux 系统查找最大前 10 个文件方法。.../:整个系统(从根目录开始)查找 -type:指定文件类型 f:普通文件 -ls:标准输出以 ls -dils 格式列出当前文件 |:控制操作符,将一条命令输出传递给下一个命令以供进一步处理

    8.7K31

    Linux 查找服务端口号方法命令

    由于某些原因,你可能经常需要查找端口名称和端口号。如果是这样,你很幸运。今天,在这个简短教程,我们将看到 Linux 系统中最简单、最快捷查找服务端口号方法。... Linux 查找服务端口号 方法1:使用 grep 命令 要使用 grep 命令 Linux 查找指定服务默认端口号,只需运行: $ grep /etc/services 例如...方法 2:使用 getent 命令 如你所见,上面的命令显示指定搜索词 “ssh”、“http” 和 “ftp” 所有端口名称和数字。...这意味着,你将获得与给定搜索词匹配所有端口名称相当长输出。...$ whatportis ssh $ whatportis ftp $ whatportis http 我 CentOS 7 服务器示例输出: Linux 查找服务端口号 如果你不知道服务的确切名称

    3.4K20

    自定义一个“传统” Validation.ErrorTemplate

    提供此类反馈一种方法是设置Validation.ErrorTemplate附加到自定义ControlTemplate属性。...通常我会给项目中每一个输入控件都设置Validaion.ErrorTemplate用于方便地显示错误信息,而这个Validaion.ErrorTemplate样式来自10年前Silverlight。...,它使用Binding [0].ErrorContent显示ValidationErrors附加属性(是一个ReadOnlyObservableCollection类型集合)第一条内容(也可以做成一个显示所有错误...其它样式Validation.ErrorTempalte 现在常见显示错误信息手段通常是输入控件下预留足够显示一行错误信息空间,例如这样: ?...结语 Validation.Error没有办法一次性为所有控件统一设置,只能在全局样式所有控件都分别设置一次,例如上面出现`TextBoxStyle,这会很麻烦,毕竟WPF控件还不少。

    1.5K40

    Silverlight项目中自定义控件开发Style学习笔记

    本文不涉及高深设计模式(比如mvc,mvvm之类),也没有太多编程技巧,只是记录自己做为asp.net开发者学习silverlight自定义控件开发一些过程,高手请绕过。 ...接下来我们先新建一个自定义控件(本文示例中将创建一个用户留言自定义控件) 先调整一下默认命名空间(因为Control是Silverlight默认控件类,为了避免命名空间与类名重复,建议最好换一个默认命名空间...tips:如果想体会asp.net开发控件"拖"到页面那种爽快,请切换到blend处理(vs2010也可以直接拖了,不过目前还只是beta版),MainPage.xaml上右击选择"Expression...,复制了一节,并命名为style2,相当于样式表定义了另一个类名,看下如何应用,仍然Blend环境,保持Silverlight项目的MainPage.xaml文件打开状态,注意右侧面板Resources...顺便提一句:视觉状态定义,除了手动写代码,blend也可以轻松搞定 ?

    968100
    领券