WPF自定义控件不能直接取内容

WPF Custom Control can not take direct content

我的自定义控件不能直接放任何内容,看看:

    <Style TargetType="local:MyCustomControl">    
         <Setter Property="Template">           
            <Setter.Value>              
                <ControlTemplate TargetType="local:MyCustomControl">
                    <Grid>                  
                        <Viewport3D />                      
                        <!-- the viewport is working (proof provided) -->
                        <!-- both borders are needed -->

                        <Border>
                            <Border>                               
                                <ContentPresenter  />    
                            </Border>
                        </Border>                   
                    </Grid>             
                </ControlTemplate>              
            </Setter.Value>         
        </Setter>    
    </Style>

class派生自Control,在静态构造函数中设置DefaultStyleKeyProperty.OverrideMetadata

当我尝试使用 MyCustomControl 时:

    <local:MyCustomControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <TextBlock Margin="10,0,0,0" FontSize="16" Text="some test value" />
    </local:MyCustomControl>

显示此错误消息:

Cannot add content to object of type MyCustomControl MyNamespace.MyCustomControl

可能是什么问题? Contentpresenter 有问题吗?

我认为你应该将你的内容绑定到你的 Presenter

<ContentPresenter  Content="{TemplateBinding Content}"/>

感谢 ZerO,这是一个很好的提示:

MyCustomControl 派生自 Control - 现在它派生自 ContenControl。 更改基础后 class 我现在可以按照 ZerO 的建议进行绑定。

<ContentPresenter  Content="{TemplateBinding Content}"/>

问题已解决!