Зачем мне нужен ContentPresenter в SilverLight? - PullRequest
2 голосов
/ 06 апреля 2011

Если я смогу заменить его одним TextBox (как на кнопке), или я могу добавить медиа-элемент непосредственно к Grid (как угодно) ...

Для чего ContentPresenter? Есть ли какие-то преимущества?

Ответы [ 3 ]

5 голосов
/ 06 апреля 2011

Вам не всегда нужен ContentPresenter.Он действует как заполнитель, который будет эффективно размещать любой контент, который вы назначаете для его атрибута контента.Если у вас есть область на заданном элементе управления / странице, которая может содержать динамическое содержимое неопределенного типа, ContentPresenter - эффективный способ хранения пространства.

Он также довольно часто используется с шаблонами, пользовательскими элементами управления,и т.д. Скорее всего, вы на самом деле не будете его использовать, пока не начнете заниматься довольно сложными вещами.

Один из отличных способов, который вы можете сделать, - это связать атрибут Content ContentPresenter с DependencyProperty типа UserControlи затем, если вы установите этот DependencyProperty равным любому UserControl (например, который вы создали в ViewModel или что-то в этом роде), он будет отображаться в этом месте.

5 голосов
/ 06 апреля 2011

Вы обычно используете ContentPresenter в шаблоне управления ContentControl, чтобы указать, где содержание должно быть добавлено. каждый Тип ContentControl имеет ContentPresenter по умолчанию ControlTemplate.

С MSDN ; так что в основном это заполнитель для контента в шаблоне.

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

Используется ContentControl .Внутри шаблона ContentControl , ContentPresenter указывает в качестве заполнителя, куда будет помещаться фактический контент.

Из MSDN,

Отображает содержимое ContentControl .

...