Я очень расстроен, пытаясь достичь очень тривиальной вещи (или, по крайней мере, чего-то, что я ожидал, должно быть тривиально ...)
У меня есть требование, где нужно настроить кнопку переключения, для которого мне нужно сделать пользовательский элемент управления, который размещает кнопку переключения, и разместить контент, который описан в этом пользовательском элементе управления.Я сделал небольшое мини-приложение, чтобы продемонстрировать «требование».
<local:MyUserControl1>
<TextBlock>Just an example</TextBlock>
</local:MyUserControl1>
MyUserControl1
выглядит следующим образом:
<UserControl
x:Class="App2.MyUserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Name="Bla" d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources>
<Style TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Ellipse Width="300" Height="300" Fill="Blue"/>
<ContentPresenter Content="{Binding ElementName=Bla, Path=MainContent}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<ToggleButton/>
</UserControl>
Код позади:
public static DependencyProperty MainContentProperty = DependencyProperty.Register(
"MainContent",
typeof(object),
typeof(MyUserControl1),
null);
public object MainContent
{
get => GetValue(MainContentProperty);
set => SetValue(MainContentProperty, value);
}
Когда я запускаю приложение, отображается текст, но стиль / кнопка переключения игнорируется / не применяется / что угодно.

Визуальное дерево подтверждает, что я что-то не так делаю:

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