我有一组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部分不需要在相同的名称空间中,在示例中,我只是将其保持不变。

更多信息herehere

关于silverlight - 从UserControl抽象子类继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/625358/

10-13 09:26