0

我正在尝试创建一个自定义版本,UserControl以便在加载时为视图实现一些标准动画。

但是当我添加一个时,ContentPresenter我无法将内容添加到我的控件中。为什么呢?

这是我用于自定义控件的模板。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:EzNintendo.Desktop.Controls">

    <Style TargetType="{x:Type local:AnimatedView}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:AnimatedView}">
                    <ContentPresenter />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>

以及自定义控件的默认代码

public class AnimatedView : Control
{
    static AnimatedView()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(AnimatedView), 
                                                 new FrameworkPropertyMetadata(typeof(AnimatedView)));
    }
}

这就是我尝试使用它的方式。

<controls:AnimatedView x:Class="MyView"
                       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"
                       xmlns:controls="clr-namespace:MControls;assembly=MControls">
    <Grid>
        <TextBlock Text="Hello World!" />
    </Grid>
</controls:AnimatedView>

当我删除它时,Grid它工作得很好。

4

0 回答 0