如何在Silverlight 3/4中的自定义控件中指定要在ContentPresenter中使用的布局管理器?

时间:2010-01-20 21:57:29

标签: silverlight

我创建了一个自定义控件,其中包含在generic.xaml中定义的ContentPresenter。我可以成功地将其他控件嵌入到自定义控件中,但它似乎继承了自定义控件的布局管理器:

<Style TargetType="custom:Widget">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="custom:Widget">
                <Canvas x:Name="LayoutRoot">

                <!-- Custom Line, Ellipse code using Canvas from above... -->

                    <Grid>
                    <!-- This more local layout manager is overridden...why ? -->

                        <ContentPresenter x:Name="ContentPresenter"
                                          Content="{TemplateBinding Content}" 
                                          ContentTemplate="{TemplateBinding 
                                              ContentTemplate}"/>
                    </Grid>
etc.....

在这种情况下,我使用 Canvas 作为自定义控件,而我想指定类似 Grid 的内容作为添加到Content的控件的布局管理器。我该怎么做?

谢谢,

斯科特

1 个答案:

答案 0 :(得分:1)

斯科特,

确保您的自定义控件(自​​定义:窗口小部件)派生自ContentControl而非Control。只有ContentControl会关注可视化树中的ContentPresenters。

吉姆麦克库迪 YinYangMoney