很常用的代码重构:多个控件有相同的功能时,一般抽象一个基类,将相同的功能提到基类里,控件继承自这个基类。Silverlight中实现时,遇到了一个小麻烦:设计器自动生成的代码总是报错
如下是继承自ProtectedView的在子类TipsView的code behind代码:
Partial Public Class TipsView
Inherits ProtectedView
...
End Class
还需在TipsView的xaml中做如下改动:
<MyApp:ProtectedView x:Class="MyAppNamespace.TipsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
d:DesignWidth="640" d:DesignHeight="480"
xmlns:MyApp="clr-namespace:MyAppNamespace"
Title="">
<Grid>
</Grid>
</MyApp:ProtectedView>
WPF的继承同样适用于 - http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx