Проблема с библиотекой управления: не удалось создать 'System.Type' из текста 'local: SolidGloss' - PullRequest
3 голосов
/ 21 октября 2010

Я работаю над библиотекой пользовательских элементов управления и застрял на этой ошибке.Может кто-нибудь сказать мне, что мне не хватает?

SolidGloss.cs:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;

namespace UXSDK
{
public class SolidGloss : Control
{

    public SolidGloss()
        : base()
    {
        DefaultStyleKey = typeof(SolidGloss);
        //SolidGlossCorners_ConformToContainer();
    }

    Border SolidGloss_Container;
    Border SolidGloss_Upper;
    Border SolidGloss_Lower;

    public override void OnApplyTemplate()
    {
        SolidGloss_Container = this.GetTemplateChild("SolidGloss_Container") as Border;
        Debug.Assert(SolidGloss_Container != null, "SolidGloss_Container is null");

        SolidGloss_Upper = this.GetTemplateChild("SolidGloss_Container") as Border;
        Debug.Assert(SolidGloss_Container != null, "SolidGloss_Container is null");

        SolidGloss_Lower = this.GetTemplateChild("SolidGloss_Container") as Border;
        Debug.Assert(SolidGloss_Container != null, "SolidGloss_Container is null");

        base.OnApplyTemplate();
    }
    public CornerRadius SolidGlossCorners
    {
        get
        {
            return (CornerRadius)GetValue(SolidGlossCornersProperty);
        }
        set
        {
            SetValue(SolidGlossCornersProperty, value);
        }
    }
    public static readonly DependencyProperty SolidGlossCornersProperty = DependencyProperty.Register("SolidGlossCorners", typeof(CornerRadius), typeof(SolidGloss), new PropertyMetadata(new CornerRadius(20,20,20,20)));
}
}

generic.xaml:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:UXSDK; assembly=UXSDK">

<!-- shared styles -->

<!-- colors -->
<Color x:Key="SolidGloss_Color_Container">#19FFFFFF</Color>
<Color x:Key="SolidGloss_Color_Upper">#19FFFFFF</Color>
<Color x:Key="SolidGloss_Color_Lower">#33000000</Color>

<!-- measures -->
<CornerRadius x:Key="Solid_CornerRadius_Container_Full">6</CornerRadius>
<Thickness x:Key="SolidGloss_Thickness_Border">1</Thickness>

<!-- Solid Gloss Background Element -->
<Style TargetType="local:SolidGloss">
    <Setter Property="Template">
        <Setter.Value>
...Visual Design...
        </Setter.Value>
    </Setter>
</Style>

</ResourceDictionary>

MainPage.xaml (отдельный проект, ссылающийся наUXSDK сборка)

<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UX="clr-namespace:UXSDK;assembly=UXSDK"
x:Class="UXSDKTestBed.MainPage"
Width="640" Height="480" Foreground="#33000000">

<Grid x:Name="LayoutRoot" Background="#FF191919">
    <UX:SolidGloss Width="200" Height="32"/>
</Grid>
</UserControl>

1 Ответ

6 голосов
/ 21 октября 2010

Название вашей сборки определенно UXSDK?Вы пытались удалить пространство из сопоставления пространства имен XML?

xmlns:local="clr-namespace:UXSDK;assembly=UXSDK"
...