#silverlight #flash
#silverlight #flash
Вопрос:
Во flash можно указать на файл на диске, чтобы связать форму с классом, имя которого может отличаться от имени формы, чтобы вы могли использовать несколько форм для одного и того же класса.
В Silverlight возможно ли это каким-либо образом, в том числе путем взлома XML-файла vs studio project вручную?
Ответ №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>
Надеюсь, это то, что вы имели в виду.