我有一组UserControls,它们需要具有一些相似的属性。因此,我定义了UserControl的抽象子类,该子类定义了这些属性,并更新了.xaml.cs和.g.cs文件以从该基类继承。所有人都能很好地编译并运行良好。大!但是..g.cs文件已生成并且将被重新生成,所以如何告诉Blend或Visual Studio继续从我的基类而不是UserControl继承?
最佳答案
您需要稍稍更改XAML,以在UserControl声明的前面添加名称空间:
<local:MyBaseControl x:Class="MyNameSpace.MyControl"
xmlns:local="clr-namespace:MyNameSpace"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Content -->
</local:MyBaseControl>
其中MyNameSpace是您的命名空间(duh!),MyBaseControl是您的基类,而MyControl是您从MyBaseControl继承的控件。 x:Class部分不需要在相同的名称空间中,在示例中,我只是将其保持不变。
更多信息here和here。
关于silverlight - 从UserControl抽象子类继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/625358/