在Silverlight中,UserControl_Loaded和Page_Loaded之间有什么区别?

时间:2009-09-01 23:25:56

标签: c# silverlight xaml silverlight-3.0

我正在尝试编写一个接收InitParams的Silverlight应用程序,然后使用这些InitParams对页面上Source的{​​{1}}进行更改。我正试图找出放置代码的合适位置。

我在InitParams上观看了Tim Heuer的excellent video,但在视频中(适用于Silverlight 2),它在Page.xaml.cs上显示以下内容:

MediaElement

当我打开MainPage.xaml.cs时,我看不到Page_Loaded,我想知道它是否是在Silverlight 2 SDK中自动创建的,并且不在Silverlight 3 SDK中。或许蒂姆在他的视频中手动添加了。

我发现我可以进入MainPage.xaml的开始UserControl标记并添加void Page_Loaded(object sender, RoutedEventArgs e) { } ,在MainPage.xaml.cs中创建以下内容:

Loaded="<New_Event_Handler>"

默认情况下,MainPage.xaml.cs中还有以下内容,它在App.xaml.cs中的Application_Startup事件期间运行:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {

    }

我需要弄清楚在我的xaml中插入代码以更改public MainPage() { InitializeComponent(); } Source的最佳位置。我应该把它放在MediaElement吗?我应该添加MainPage事件处理程序并将其放入Loaded吗?如果它应该是UserControl_Loaded,我在哪里可以在Silverlight 3中找到它?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

“UserControl_Loaded”和“Page_Loaded”只是方法名称,名称无关紧要(如果需要,可以将方法命名为“Foo”)。这些方法做任何事情的原因是它们附加到UserControl上的Loaded事件(这是您在编辑MainPage.xaml文件时所做的事情)。