Во флэш-памяти можно указать файл на диске, чтобы связать форму с классом, имя которого может отличаться от имени формы, так что вы можете использовать несколько форм для одного класса.
В Silverlight это так?Можно ли как-нибудь, в том числе путем взлома vs студийного проекта вручную xml-файла?
Это выполняется с использованием наследования.Вы можете определить все, что вам нужно, в базовом элементе управления, и производные элементы управления используют этот код.Например, вы хотите определить обработчик событий, который будет использоваться для всех ваших элементов управления:
Определить обработчик событий в базовом классе - 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 - определяет новый элемент управления, унаследованный от BaseControl.Вам просто нужно указать базовый класс
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>
Надеюсь, что вы имели в виду.