3

请原谅我是一个完整的新手,但我正在学习一个教程(在 XAML 中创建自定义 WPF 按钮模板),我遇到了错误:

由于文档错误引发 FormatException:在类型“FrameworkElement”中找不到属性“模板”。

该错误似乎源于 XAML 中的以下代码:

 <Setter Property="Template">
     <Setter.Value>
         <ControlTemplate TargetType="Button">
             <Border Name="border"
                BorderThickness="1"
                Padding="4,2"
                BorderBrush="DarkGray"
                CornerRadius="3"
                Background="{TemplateBinding Background}">
                <Grid >
                <ContentPresenter HorizontalAlignment="Center"
                          VerticalAlignment="Center" Name="contentShadow"
                    Style="{StaticResource ShadowStyle}">
                    <ContentPresenter.RenderTransform>
                        <TranslateTransform X="1.0" Y="1.0" />
                    </ContentPresenter.RenderTransform>
                </ContentPresenter>
                <ContentPresenter HorizontalAlignment="Center"
                       VerticalAlignment="Center" Name="content"/>
                </Grid>
        </Border>

我一直在寻找解决方案,但还没有找到……这让我相信我要么忽略了某些东西,要么想多了。

我错过了什么?预先感谢您的任何帮助!

4

1 回答 1

3

AFrameworkElement没有Template属性。模板通常定义在一个Control类上。这是因为大多数 WPF 元素派生自FrameworkElement但它们并不都具有模板(StackPanel例如)。您的 Setter 可能在 Style 中(您没有发布该部分)。确保TargetTypeStyle是正确的类型(最有可能是 Button)。

<Style x:Key="InformButton" TargetType="Button">
    <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="Button">
                <Border Name="border"
                etc...
</Style>
于 2011-09-03T20:05:59.000 回答