我正在尝试我的第一个WPF自定义控件。我几乎没有做任何事情,也无法编译。我的generic.xaml中出现错误,上面写着“类型引用无法找到名为'Filmstrip'的公共类型。第7行位置50(第7行是样式开始标记)
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)));
}
}
}
我错过了什么?
答案 0 :(得分:3)
clr-namespaces:Unicorn.Controls
应为clr-namespace:Unicorn.Controls
。单数,而不是复数。
答案 1 :(得分:2)
您的xaml中出现语法错误。以下一行:
xmlns:local="clr-namespaces:Unicorn.Controls"
应该是
xmlns:local="clr-namespace:Unicorn.Controls"
此外,除非这是您正在使用的程序集,否则不要忘记使用程序集参数来引用其他程序集。