如何创建多个用户控件,将单个代码指向silverlight 4中的文件

Vir*_*iya 2 .net silverlight user-controls silverlight-4.0

我正在创建一个应用程序,其中我有2个用户控件,是否有可能,我们有2个xaml用户控制页面,并且在xaml.cs文件后面有1个代码?

Ant*_*nes 6

首先创建三个文件,首先将"代码隐藏".cs文件创建为一个简单的类: -

 public class MyCommonUserControl : UserControl
 {

 }
Run Code Online (Sandbox Code Playgroud)

请注意,它没有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 >
Run Code Online (Sandbox Code Playgroud)

请注意添加xmlns:local别名以指向应用程序的命名空间,然后将UserControl标记更改为我们实际需要的基本控件.

您可以将.xaml.cs修改为: -

public partial class FirstMyCommonUserControl : MyCommonUserControl 
{
    public FirstMyCommonUserControl()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是.xaml.cs需要包含的全部内容.

然后,您可以重复此操作SecondMyCommonUserControl,依此类推.将所有公共代码放在基MyCommonUserControl类中.

很遗憾MS首先没有预料到这一点,在底层添加一个空的虚拟InitializeComponent方法,UserControl并且使用.gics自动生成的代码,override该方法意味着我们可以省去这个超级.xaml.cs文件.这些案件.