1

我是 C#/Windows 商店应用程序开发的新手,我遇到了一个问题:我得到了

The name "CustomTemplate1" does not exist in the namespace "using:QSTLibrary.WIN8"

我从事的项目有 2 个库(一个可移植的(没有任何 GUI)和一个特定于平台的(Win 商店应用程序))和一个基于这 2 个库的启动项目。

在特定于平台的库上,我想添加一个templated control,但是当使用add -> new item -> templated control自动生成的“主题”文件夹中的 Generic.xaml 添加它时,会出现上述错误。

这是 Generic.xaml:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:QSTLibrary.WIN8">

    <Style TargetType="local:CustomTemplate1"> //HERE IS THE PROBLEM !!!!
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:CustomTemplate1">
                    <Border
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

这是自定义模板 1:

using System;
using System.Collections.Generic;
using System.Linq;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Documents;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;

// The Templated Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234235

namespace QSTLibrary.WIN8
{
    public sealed class CustomTemplate1 : Control
    {
        public CustomTemplate1()
        {
            this.DefaultStyleKey = typeof(CustomTemplate1);
        }
    }
}

QSTLibrary.WIN8 是特定于平台的库

在此处输入图像描述

请帮我解决这个问题。

4

1 回答 1

4

我通过复制 Generic.xaml 的内容、删除 Generic.xaml、构建、在 Themes 文件夹下再次添加一个新的 xaml 文件(将其命名为 Generic.xaml)并粘贴 Generic.xaml 的初始内容来解决它。再次构建并工作。我的结论是,我必须首先编译包含 CustomTemplate1.cs 的库,在此编译之后,该库将能够添加对 CustomTemplate1.cs 的引用。由于最初的错误,lib没有编译,所以删除有错误的文件,编译,再次添加xaml是我解决这个问题的方法。对我来说看起来像一个 Visual Studio 错误。

于 2013-09-25T11:00:26.900 回答