Доступ к вложенному UserControl ContentPresenter с помощью Blend - PullRequest
1 голос
/ 13 апреля 2011

Я создал простой UserControl в Blend, который содержит (помимо прочего) ContentPresenter.

Я хотел бы иметь возможность поместить этот UserControl в другой UserControl, а затем добавить другие элементы управления в его ContentPresenter., но когда я включаю его во второй UserControl, я не вижу способа сделать это.

Используя Blend, как мне показать базовый ContentPresenter, чтобы его содержимое можно было установить визуально (т. е. чтобы ониотображаются как дочерние элементы управления в окне «Объекты и временная шкала»?

1 Ответ

0 голосов
/ 13 апреля 2011

Если это элемент управления содержимым, для добавления дочерних элементов управления вы устанавливаете их в качестве содержимого элемента управления

<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, но оно выглядит «хакерским»

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