1

我有一个从类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.

有人可以帮我解决这个错误。提前致谢。

4

2 回答 2

4

错误说它本身BaseInputFramework.BaseWidgets.BIFUserControl不能是 XAML 文件的根,因为它是使用 XAML 定义的。只有没有使用 XAML 文件定义的元素只能是根元素。请参阅这些链接 -无法定义根元素从 UserControl 继承

于 2012-09-08T17:23:04.887 回答
1

UserControls通过将 设置Content为您在 XAML 中定义的内容来工作,这可能是您不能这样继承的原因:基类的内容将被覆盖。

如果您不介意完全替换内容,您不妨使用自定义控件并定义 a Template

于 2012-09-08T17:20:06.793 回答