2011-08-31 4 views
0

J'essaie mon premier contrôle personnalisé WPF. Je n'ai presque rien fait et il ne compilera pas. Je reçois une erreur dans mon generic.xaml qui dit: « La référence de type ne peut pas trouver un type public nommé « Filmstrip » Ligne 7 Position 50 (ligne 7 est la balise de début de style)"Le type de référence ne trouve pas de type public ..." erreur dans WPF Custom Control

generic.xaml:.

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespaces:Unicorn.Controls"> 
    <Style TargetType="{x:Type local:Filmstrip}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type local:Filmstrip}"> 
        <Border Background="{TemplateBinding Background}" 
          BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}"> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

Filmstrip.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace Unicorn.Controls 
{ 
    public class Filmstrip : Control 
    { 
     static Filmstrip() 
     { 
      DefaultStyleKeyProperty.OverrideMetadata(typeof(Filmstrip), new FrameworkPropertyMetadata(typeof(Filmstrip))); 
     } 
    } 
} 

Qu'est-ce que je manque? Je

+0

Une spécification d'assembly peut-elle manquer dans la déclaration 'xmlns: local'? –

+0

Le xaml se trouve dans le même assemblage que la classe de contrôle personnalisé. – Pete

+1

Avez-vous essayé d'utiliser un constructeur public non statique? – Hasanain

Répondre

3

clr-namespaces:Unicorn.Controls devrait être clr-namespace:Unicorn.Controls. singulier, non au pluriel.

2

Il semble que vous ayez une erreur de syntaxe dans votre xaml. La ligne suivante:

xmlns:local="clr-namespaces:Unicorn.Controls" 

devrait être

xmlns:local="clr-namespace:Unicorn.Controls" 

En outre, à moins que cela est l'assemblage que vous travaillez ne pas oublier d'utiliser le paramètre d'assemblage pour faire référence à d'autres ensembles.

Questions connexes