Как указать менеджер макета для использования в ContentPresenter в пользовательском элементе управления в Silverlight 3/4? - PullRequest
1 голос
/ 21 января 2010

У меня есть пользовательский элемент управления, который имеет ContentPresenter, определенный в generic.xaml. Я могу успешно встроить другие элементы управления в пользовательский элемент управления, но, похоже, он наследует менеджер компоновки пользовательского элемента управления:

<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. Как мне это сделать?

Спасибо

Scott

1 Ответ

1 голос
/ 22 января 2010

Скотт,

Просто убедитесь, что ваш пользовательский элемент управления (custom: Widget) происходит от ContentControl, а не от Control. Только ContentControl обращает внимание на ContentPresenters в визуальном дереве.

Джим МакКарди
YinYangMoney

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...