首页 > 其他分享 >WPF 获取页面的子级

WPF 获取页面的子级

时间:2023-09-08 20:12:05浏览次数:33  
标签:obj parent System 子级 child using WPF null 页面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;

 

namespace K.Controls.Controls.Helper

{
  public class GetChildHelper
  {
    public static T GetVisualChild<T>(object parent) where T : Visual
    {
      DependencyObject dependencyObject = parent as DependencyObject;
      return InternalGetVisualChild<T>(dependencyObject);
    }

    

    private static T InternalGetVisualChild<T>(DependencyObject parent) where T : Visual
    {
      T child = default(T);

      int numVisuals = VisualTreeHelper.GetChildrenCount(parent);

      for (int i = 0; i < numVisuals; i++)
      {
        Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
        child = v as T;
        if (child == null)
        {
          child = GetVisualChild<T>(v);
        }
        if (child != null)
        {
          break;
        }
      }
     return child;
       }

 

    public static T FindVisualParent<T>(DependencyObject obj) where T : class
    {
      while (obj != null)
    {
      if (obj is T)
        return obj as T;

      obj = VisualTreeHelper.GetParent(obj);
    }
    return null;
  }

  }
}

标签:obj,parent,System,子级,child,using,WPF,null,页面
From: https://www.cnblogs.com/jnyyq/p/17688452.html

相关文章

  • WPF 获取资源文件帮助类
    usingSystem;usingSystem.Reflection;usingSystem.Windows;namespaceK.Controls.Controls.Helper{publicclassResourceHelper{privatestaticResourceDictionary_theme;internalstaticTGetResourceInternal<T>(stringkey)......
  • WPF 使用Image实现动画旋转Loading
    首先需要有一个Loading的图片,(白色背景,白色小圆圈,所以显示看不到): 创建一个用户控件,实现动画的功能:<UserControlx:Class="K.Controls.Controls.LoadingImage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/......
  • WPF绑定(Binding)(4)
    数据绑定组件之间的绑定<StackPanel><Sliderx:Name="sd"Width="200"/><TextBoxText="{BindingElementName=sd,Path=Value}"/></StackPanel> 绑定数据源<Window.Resources>......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(1)
    在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应......
  • 【IIS】HTTP 错误 405.0 - Method Not Allowed,无法显示您正在查找的页面,因为使用了无
    转自:https://blog.csdn.net/weixin_38211198/article/details/103597330问题HTTP 错误 405.0 - Method Not Allowed无法显示您正在查找的页面,因为使用了无效方法(HTTP 谓词)。 解决在IIS中,找到处理程序映射上面的报错已经指明是WebDAVModule模块,找到该模块  ......
  • 解决vue3+js unplugin-auto-import/vite 自动引入生效后 页面eslint报错
           ......
  • 使用CSS给页面关键词加条彩虹线
    使用CSS给页面关键词加条彩虹线给页面页面关键词下方加上一个彩虹颜色的装饰线条,更能吸引人注意力,这里来动手实现看看效果效果css.txt-title{width:600px; text-align:center; padding:10px0; margin-bottom:15px; }.txt-titlep,{ font-size:16px; padding:1......
  • 【电子量产工具】5.页面系统
    @TOC前言最近看了电子量产工具这个项目,本专栏是对该项目的一个总结。一、页面系统分析页面系统是指在软件应用或网站中,将功能和内容划分为不同的页面,并通过页面间的导航和交互来展示信息和实现用户操作的一种组织方式。页面系统通常由多个页面组成,每个页面都有自己的功能和呈现内......
  • el-input 回车事件keydown刷新页面(白屏)
    因为触发了form表单的事件,禁用即可,@submit.prevent<el-form:model="form"[email protected]><el-form-itemlabel=""><el-inputv-model="form.code"placeholder=""......
  • WPF开发中的资源引用
    文章主要内容:项目资源管理常用资源引用控件模板动态资源变更项目资源管理资源直接直接引用在项目中直接添加一张图片,并将属性的生成操作改为"资源",在XAML中直接引用文件路径源站点资源引用将图片属性的生成操作改为"无",复制到输出目录改为"始终复制"。重新编译后会在源......