解决方法
首先创建三个文件,首先将“code-behind”.cs文件创建为一个简单的类: –
public class MyCommonUserControl : UserControl { }
请注意,它没有InitializeComponent调用.
现在创建一个新的UserControl,然后将其xaml修改为如下所示: –
<local:MyCommonUserControl x:Class="YourApp.FirstMyCommonUserControl " 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" xmlns:local="clr-namespace:YourApp" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> </Grid> </local:MyCommonUserControl >
注意添加xmlns:local别名以指向应用程序的命名空间,然后将UserControl标记更改为我们实际需要的基本控件.
您可以将.xaml.cs修改为: –
public partial class FirstMyCommonUserControl : MyCommonUserControl { public FirstMyCommonUserControl() { InitializeComponent(); } }
这就是.xaml.cs需要包含的全部内容.
然后,您可以为SecondMyCommonUserControl重复此操作,依此类推.将所有公共代码放在基本MyCommonUserControl类中.
很遗憾MS首先没有预料到这一点,在底层的UserControl中添加一个空的虚拟InitializeComponent方法,并且.gics自动生成的代码覆盖了该方法,这意味着我们可以免除这个超级.xaml.在这些情况下的cs文件.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。