【发布时间】:2018-12-09 05:40:28
【问题描述】:
我在尝试实现一件非常微不足道的事情时感到非常沮丧(或者至少,我期望的事情应该是微不足道的......)
我有一个需要自定义切换按钮的要求,为此我需要创建一个承载切换按钮的用户控件,并承载该用户控件中描述的内容。我做了一个小程序来演示“需求”。
<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);
}
当我运行应用程序时,会显示文本,但样式/切换按钮被忽略/未应用/无论如何。
视觉树确认我做错了:
我查看了许多其他相关的 SO Q&A,但我仍然不知道如何以我想要的方式使其工作。
【问题讨论】:
标签: c# uwp controltemplate