2012-09-08 3 views
1

UserControl 클래스를 상속받은 BIFUserControl 클래스가 있습니다. 이제는 BIFUserControl 클래스에서 상속받은 BIFText이라는 새로운 사용자 정의 컨트롤을 설계하고 있습니다.XAML 파일의 다른 기본 클래스

namespace BIFWidgetLibrary.Text { 
    public partial class BIFText : BIFUserControl 
    { 
     public BIFText() 
     { 
      InitializeComponent(); 
     } 
    } } 

을하지만 지금이 프로젝트를 빌드 할 때, 내가 얻을 다음 다음과 같이 내 BIFText.xaml.cs 파일을 변경 한 후

<base:BIFUserControl 
       xmlns:base="clr-namespace:BaseInputFramework.BaseWidgets;assembly=BaseInputFramework" 
       x:Class="BIFWidgetLibrary.Text.BIFText" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 

       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

       xmlns:mp="clr-namespace:Microsoft.Multipoint.Sdk.Controls;assembly=Microsoft.Multipoint.Sdk.Controls" 
       xmlns:utils="clr-namespace:BaseInputFramework.BaseWidgets.Utils;assembly=BaseInputFramework" 

       mc:Ignorable="d" 
       d:DesignHeight="150" d:DesignWidth="150"> 
    <Grid> 


    </Grid> </base:BIFUserControl> 

을 그리고 : 그래서, 다음과 같이 BIFText.xaml라는 XAML 파일을 변경 오류 메시지 : 'BaseInputFramework.BaseWidgets.BIFUserControl' cannot be the root of a XAML file because it was defined using XAML. Line 2 Position 14.

누군가이 오류로 나를 도와 줄 수 있습니까? 미리 감사드립니다.

+0

'BIFUserControl'에는 템플릿을위한 xaml 파일이 있습니까, 아니면 UserControl에서만 하위 클래스를 가지고 있습니까? –

+0

예 BIFUserControl 클래스에는 자체 XAML 파일도 있습니다. –

답변

4

오류는 XAML을 사용하여 정의 되었기 때문에 BaseInputFramework.BaseWidgets.BIFUserControl은 XAML 파일의 루트가 될 수 없다고 말합니다. XAML 파일을 사용하여 정의되지 않은 요소 만 루트 요소가 될 수 있습니다. 이 링크를 참조하십시오 - Cannot define root elementInheriting from UserControl

+1

네가 쓰고있다, 나는 XAML 파일없이 새로운 Base UserControl 클래스를 빠르게 만들었다. 그리고 그 후 위의 코드는 나를 위해 작동합니다. 감사 ! –

1

UserControls XAML에서 정의한대로 Content을 설정하면 이것이 상속받을 수 없습니다. 기본 클래스의 콘텐츠를 덮어 씁니다.

콘텐츠를 완전히 바꾸는 데 신경 쓰지 않는다면 맞춤 컨트롤을 사용하고 Template을 대신 정의 할 수 있습니다.

관련 문제