部分声明,不能指定不同的基类?

时间:2017-04-13 10:54:02

标签: wpf xaml

当我改变这个时:

public partial class FrmCategories : UserControl

到此:

public partial class FrmCategories : MyUserControl

MyUserControl继承自UserControl

我收到了这个错误:

  

错误2'WpfTest.FrmCategories'的部分声明不得   指定不同的基类

     

\ Projects \ WpfTest \ WpfTest \ FrmCategories.xaml.cs 21 26 WpfTest

XAML:

<UserControl x:Class="WpfTest.FrmCategories"
             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:we="clr-namespace:WpfTest"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" Background="Azure" Height="131" Width="229">
    <StackPanel Margin="5,24,5,0" Name="catFrm" Height="75" VerticalAlignment="Top">

我正在开始WPF(正如项目名称所暗示的那样),所以我希望这里有一个微不足道的错误

2 个答案:

答案 0 :(得分:6)

您需要更改XAML文件的根元素:

<we:MyUserControl x:Class="WpfTest.FrmCategories"
             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:we="clr-namespace:WpfTest"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" Background="Azure" Height="131" Width="229">
    <StackPanel Margin="5,24,5,0" Name="catFrm" Height="75" VerticalAlignment="Top">
</we:MyUserControl>

答案 1 :(得分:2)

partial仅表示您可以将类定义拆分为不同的文件。但是仍然所有的部分定义只定义了一个类,因此只能有一个基类。

如果您想继承MyUserControl,您还必须更改xaml代码:

<we:MyUserControl x:Class="WpfTest.FrmCategories"
...>
...
</we:MyUserControl>

另外,请注意您只需指定一次基类,即您甚至可以将C#代码更改为

public partial class FrmCategories

因为基类已在xaml中定义。