首页
学习
活动
专区
工具
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控件。

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

相关·内容

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.9K30

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

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

1.8K50
  • silverlight 《Hands-On-Labs》教程系列

    [在这个教程中你会看到如何使用多种访问远程数据的方法,你将使用除了WCF,web service的WebClient, 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#中访问

    92670

    好用的VisualTreeExtensions

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

    1.2K30

    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控件都可以

    79850

    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控件都可以, 可以发挥你的想像力:

    93820

    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

    68110

    Silverlight学习(三)

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

    76380

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

    默认情况下,Silverlight自带的ListBox控件如果内部有多个TextBox,用户无法用键盘上的Tab键,在ListBox内部的TextBox之间切换。...但Teterik RadControls 中的telerik:ListBox却很好的解决了这个问题,只要把telerik:ListBox的IsTabStop设置成false,同时把TabNavigation...Text="下面是Silverlight自带的ListBox" HorizontalAlignment="Center" VerticalAlignment="Center"/>...  意外惊喜:之前写过一篇博文,讲述了 Silverlight自带的ListBox,无法应用Blend中的MouseDragElementBehavior(即...:应用该行为仍然无法拖动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控件自己小改一下便可实现 ?

    81050

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

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

    16.4K31

    在 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.5K20

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

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

    980100

    合体姿势不对的HeaderedContentControl

    前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑定到Header...以前的问题 在WPF中,HeaderedContentControl是Expander、GroupBox、TabItem等诸多拥有Header属性的控件的基类,虽然很少直接用这个控件,它的存在也有一定价值...不过在WPF中它的价值也仅此而已,由开发者自己实现也极其容易,以至于后来在Silverlight中就没有提供这个控件(后来放到了Silverlight Toolkit这个扩展里)。...UWP中几乎所有的表单控件都有Header属性,如TextBox、ComboBox等,这么看起来HeaderedContentControl更加重要了,但UWP反而没有提供HeaderedContentControl...,而且和TextBox等控件不同,UWP CommunityToolkit中的Header属性都是string类型,真是任性。

    91330
    领券