(通常適用される汎用テンプレートではなく) の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" />
Content バインディングが機能しない理由を知っている人はいますか? 通常の汎用テンプレートにフォールバックできると思いますが、UserControl のように直接実行できれば簡単です。