使用Blend访问嵌套的UserControl的ContentPresenter

时间:2011-04-13 12:47:18

标签: silverlight-4.0 expression-blend

我在Blend中创建了一个简单的UserControl,其中包含(其中包括)ContentPresenter。

我希望能够将此UserControl放到另一个UserControl上,然后将其他控件添加到其ContentPresenter中,但是当我将它包含在第二个UserControl中时,我看不到这样做的方法。

使用Blend,我如何公开底层的ContentPresenter,以便可以直观地设置其内容(即:它们在Objects和Timeline窗口中显示为子控件)?

1 个答案:

答案 0 :(得分:0)

如果是内容控件,要添加子控件,请将它们设置为控件的内容

<MyContentControl>
    <Grid x:Name=”ImAChild”>
    </Grid>
</MyContentControl>

编辑:现在我想到你可能需要做一些事情来使Content属性成为你的控件的内部xaml填充的默认属性,我不记得它到底是什么,但如果你的xaml看起来像这样(下面)无论如何都无关紧要

<MyContentControl>
    <MyContentControl.Content>
        <Grid x:Name=”ImAChild”>
        </Grid>
    </MyContentControl.Content>
</MyContentControl>

EDIT2 您的MyUserControl需要MyContent object类型的属性,并且必须以某种方式显示该属性的值。您可以在MyContent属性的setter中创建它,但它似乎是“hacky”

<MyUserControl>
    <MyUserControl.MyContent>
        <Grid x:Name=”ImAChild”>
        </Grid>
    </MyContentControl.MyContent>
</MyUserControl>