2011-09-03 95 views
3

请原谅我,作为一个完整的新手,但我下面的教程(Creating a Custom WPF Button Template in XAML),和我遇到了错误:住宅“模板”式“FrameworkElement的”未找到

FormatException was thrown due to document error: Property 'Template' was not found in type '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> 

我一直在到处找一个解决方案,但还没有找到一个...这使我相信,我是无论是俯视还是过度俯视。

我缺少什么?预先感谢您的任何帮助!

+0

请参阅_Download the example XAML file_ in that link for the complete self-contained example。它显示应该插入您引用的XAML片段的位置。 –

回答

3

A FrameworkElement没有Template属性。模板通常在Control类中定义。这是因为大多数WPF元素来自FrameworkElement,但它们并不都具有模板(例如,StackPanel)。你的二传可能在一个风格(你没有发布该部分)。确保StyleTargetType是正确的类型(最可能是Button)。

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

哇..感谢NotDan!你在现场。 TargetType是我所缺少的。非常感谢解释! – PsiLentRain

+0

我正在寻找一个共享的“背景”属性,它也不存在于'FrameworkElement'中。感谢您指出'Control'类。 – Mehrad