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