日期:2014-05-17  浏览次数:21274 次

WPF,请问这样的UserControl该怎么创建?
项目中,需要创建很多个继承自UserControl的用户控件,由于这些控件有些内容是相同的,所以,可不可以创建一个基类,然后让那些用户控件派生自这个基类呢?
我试了一下,首先在项目中创建一个继承自UserControl的基类BaseUserControl,然后让用户控件继承自这个BaseUserControl,如下:


<local:BaseUserControl x:Class="WPF1.UserControl1"
             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:local="clr-namespace:WPF1"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
             
    </Grid>
</local:BaseUserControl>



public partial class UserControl1 : BaseUserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }
}


可是出来的问题一大堆:
1:
WPF1.UserControl1.InitializeComponent()”隐藏了继承的成员“WPF1.Classes.BaseUserControl.InitializeComponent()”。如果是有意隐藏,请使用关键字 new。 e:\Users\Administrator\Documents\Visual Studio 2012\Projects\WPF1\WPF1\obj\Debug\UserControl1.g.cs

2:
“WPF1.Classes.BaseUserControl”不能是 XAML 文件的根,因为它是使用 XAML 定义的。 


请教大师们,这种情况该怎么写?

------解决方案--------------------
试试改一下你的基类BaseUserControl的名字,我查MSDN,也有一个BaseUserControl,不知是不是混淆了?
------解决方案--------------------
还有,你的基类BaseUserControl是(xaml+cs)还是(单一个cs文件的)?
------解决方案--------------------
引用:
Quote: 引用:

还有,你的基类BaseUserControl是(xaml+cs)还是(单一个cs文件的)?

是xaml+cs


其实单个cs文件就足够了。