我有一个名为BIFUserControl
的类,它继承自UserControl
类。现在我正在设计一个名为BIFText
的新用户控件,它继承自BIFUserControl
类。所以,我更改了名为BIFText.xaml
的XAML文件,如下所示:
<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.cs
文件:
namespace BIFWidgetLibrary.Text {
public partial class BIFText : BIFUserControl
{
public BIFText()
{
InitializeComponent();
}
} }
但是现在当我尝试构建项目时,收到以下错误消息:
'BaseInputFramework.BaseWidgets.BIFUserControl' cannot be the root of a XAML file because it was defined using XAML. Line 2 Position 14.
有人可以帮我解决这个错误。提前谢谢。
答案 0 :(得分:4)
错误表明BaseInputFramework.BaseWidgets.BIFUserControl
不能是XAML文件的根,因为它是使用XAML定义的。只有未使用XAML文件定义的元素才能是根元素。请参阅以下链接 - Cannot define root element和Inheriting from UserControl
答案 1 :(得分:1)
UserControls
通过将Content
设置为您在XAML中定义的内容来工作,这可能是您无法继承的原因:基类的内容将被覆盖。
如果您不介意完全替换内容,可以使用自定义控件并定义Template
。