代码之家  ›  专栏  ›  技术社区  ›  Falcon

Wpf:按ElementName获取类背后的代码类型

  •  1
  • Falcon  · 技术社区  · 14 年前

    假设我有这样一个用户控件:

    <UserControl x:Class="SomeNamespace.SomeClass">
        <Grid>
            <TextBlock Name="SampleTextBlock" />
        </Grid>
    </Usercontrol>
    

    在我的申请表中,我得到了一个名字:SampleTextBlock。我可以找到名称对应的框架元素。但是如何从这个框架元素中找到代码隐藏类的类型呢?

    这就是我在指定样本中寻找的:

    Type usercontrolTypeOfElement = typeof(SomeClass);
    

    但是如何从名为SampleTextBlock的TextBlock的Frameworkelement中获取类呢?

    1 回复  |  直到 14 年前
        1
  •  2
  •   HCL    14 年前

    FrameworkElement  current=textBlockInstance; // your TextBlock
    while(null != current && !(current is UserControl)){
     current=current.Parent as FrameworkElement;
    }
    if(null != current){
        Type typeOfUserControl=current.GetType();
        MessageBox.Show(typeOfUserControl.Name);
    }