2010-03-01 55 views
1

有什么控件可以继承,它具有Children的属性,并在构建自定义的usercontrol时支持模板。XAML控件从模板继承

目前我所了解的面板,但它不支持的属性和方法,如DefaultStyleKeyGetTemplateChild();

有,我可以从模板,如继承的接口:

public class Scroller : Panel, ITemplates //Something like ITemplates 
{ 
    public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 
     container = GetTemplateChild("container") as StackPanel; //I want to be able to do this 

     this.Children; //And also be able to use this 
    } 
} 

回答

1

你想要的ItemsControl。它具有一个Items属性,它的模板非常灵活,如TabControl,ListBox,ComboBox等都来自它。

+0

出于某种原因,那是什么之前,但它不会工作。我将在ListPanelTemplate中使用自定义控件作为列表框。当我从ItemsControl继承时,它告诉我需要一个Panel的根。 – 2010-03-01 03:09:55

+0

正确,如果您试图重写ListBox的布局,那么您必须创建一个Panel并且您没有获取模板。专家组没有视觉表现,它只是列出其子女,因此不需要模板。 – Josh 2010-03-01 03:12:00

+0

您应该决定是否要创建自定义ItemsControl(换句话说,没有ListBox),或者如果您只是想重写ListBox的布局。 – Josh 2010-03-01 03:13:05