У меня есть пользовательский ContentControl
, который имеет фиксированный макет XAML, такой как UserControl
(вместо обычного применяемого универсального шаблона).
Раньше у этого макета не было лишней разметки, поэтому он был буквально:
<ContentControl x:Class="MyControls.CustomViewControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
</ContentControl>
Это сработало нормально.
Теперь я хочу поместить рамку вокруг содержимого, поэтому я изменил XAML на:
<ContentControl x:Class="MyControls.CustomViewControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<ContentControl.Template>
<ControlTemplate>
<Border BorderThickness="5" BorderBrush="LightGreen">
<ContentPresenter />
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
Это показывает границу, но не содержание.
Я попытался указать явную привязку для ContentPresenter:
<ContentPresenter Content="{Binding Path=Content, RelativeSource={RelativeSource Self}}"/>
Но это не имело значения.
Установка явного Content
работает:
<ContentPresenter Content="TEST" />
Кто-нибудь знает, почему привязка контента не работает? Думаю, я мог бы вернуться к обычному общему шаблону, но было бы проще, если бы я мог просто сделать это напрямую, как UserControl.