无法创建自定义Windows手机控件

时间:2016-09-14 20:23:24

标签: c# xaml windows-phone-8 windows-phone-8.1 winrt-xaml

我正在尝试为我的Windows Phone 8.1项目创建自定义模板控件,但无论我做什么,它都会给我以下异常:

  

无法从文本中创建“System.Type”   'local2:CustomControl1'

我非常感谢任何帮助。这是我目前的代码

PivotPage.xaml:

    <Page
        x:Class="App1.PivotPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:controls="using:App1.Controls"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:data="using:App1.Data"
        xmlns:local="using:App1"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
        DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
        mc:Ignorable="d">
    <Grid>
        <controls:CustomControl1 />
    </Grid>
</Page>

CustomControl1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
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 App1.Controls
{
    public sealed class CustomControl1 : Control
    {
        public CustomControl1()
        {
            this.DefaultStyleKey = typeof(CustomControl1);
        }
    }
}

Generic.xaml

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

    <Style TargetType="local2:CustomControl1" xmlns:local2="using:App1.Controls">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local2:CustomControl1">
                    <Border
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

提前致谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

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

<Style TargetType="local2:CustomControl1" >
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local2:CustomControl1">
                <Border
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}">
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>