【问题标题】:Property 'Template' was not found in type 'FrameworkElement'在“FrameworkElement”类型中找不到属性“模板”
【发布时间】:2011-11-09 20:25:26
【问题描述】:

请原谅我是一个完整的新手,但我正在学习一个教程 (Creating a Custom WPF Button Template in XAML),我遇到了错误:

由于文档错误引发了 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>

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

我错过了什么?提前感谢您的帮助!

【问题讨论】:

  • 请参阅该链接中的下载示例 XAML 文件以获取完整的独立示例。它显示了您引用的 XAML 片段应该插入的位置。

标签: c# wpf visual-studio-2010 xaml frameworkelement


【解决方案1】:

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

<Style x:Key="InformButton" TargetType="Button">
    <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="Button">
                <Border Name="border"
                etc...
</Style>

【讨论】:

  • 哇..谢谢 NotDan!你很准。 TargetType 是我所缺少的。非常感谢您的解释!
  • 我正在寻找一个共享的“背景”属性,它在FrameworkElement 中也不存在。感谢您指出Control 类。
猜你喜欢
  • 1970-01-01
  • 2016-02-08
  • 2019-02-20
  • 2011-10-24
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
相关资源
最近更新 更多