是否可以将相同的代码隐藏关联到Silverlight中的多个类,就像在flash中一样

时间:2011-04-27 05:42:08

标签: silverlight flash

在flash中,可以指向磁盘上的文件,将表单与名称与表单名称不同的类相关联,这样就可以将多个表单连接到同一个类。

在Silverlight中,有可能以某种方式包括黑客攻击和工作室项目xml文件吗?

1 个答案:

答案 0 :(得分:1)

使用继承执行。您可以在基本控件中定义所需的所有内容,派生控件使用此代码。例如,您需要定义将用于所有控件的事件处理程序:

在基类中定义事件处理程序 - BaseControl.xaml.cs

namespace SilverlightApp
{
    public partial class BaseControl : UserControl
    {
        public BaseControl()
        {
            InitializeComponent();
        }

        // The event handler that used by derived classes
        protected void Button_Click(object sender, RoutedEventArgs e)
        {
             // your implementation here
        }
    }
}

BaseControl.xaml

<UserControl x:Class="SilverlightApp.BaseControl"
    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"
    d:DesignHeight="300" d:DesignWidth="400">

    <!-- your implementation here if needed -->
</UserControl>

MyControl1.xaml.cs - 定义从theBaseControl继承的新控件。您只需要指定基类

namespace SilverlightApp
{
    public partial class MyControl1 : BaseControl
    {
        public MyControl1()
        {
            InitializeComponent();
        }
    }
}

MyControl1.xaml

<local:BaseControl x:Class="SilverlightApp.MyControl1"
    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:SilverlightApp"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <!-- button uses event handler from the base class -->
        <Button Content="My button" Click="Button_Click" />
    </Grid>
</local:BaseControl>

希望你的意思。