Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Silverlight,什么';加载的用户控件和加载的页面有什么区别?_C#_Silverlight_Xaml_Silverlight 3.0 - Fatal编程技术网

C# 在Silverlight,什么';加载的用户控件和加载的页面有什么区别?

C# 在Silverlight,什么';加载的用户控件和加载的页面有什么区别?,c#,silverlight,xaml,silverlight-3.0,C#,Silverlight,Xaml,Silverlight 3.0,我正在尝试编写一个silverlight应用程序,它接受InitParams,然后使用这些InitParams对页面上的MediaElement的Source进行更改。我在试着找出合适的地方来放置我的代码 我在InitParams上观看了Tim Heuer的视频,但在视频(用于Silverlight 2)中,它在Page.xaml.cs上显示了以下内容: void Page_Loaded(object sender, RoutedEventArgs e) { } privat

我正在尝试编写一个silverlight应用程序,它接受InitParams,然后使用这些InitParams对页面上的
MediaElement
Source
进行更改。我在试着找出合适的地方来放置我的代码

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

void Page_Loaded(object sender, RoutedEventArgs e)
    {

    }
private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {

    }
当我打开MainPage.xaml.cs时,我没有看到加载的页面,我想知道这是否是在Silverlight 2 SDK中自动创建的,而在Silverlight 3 SDK中没有。或者蒂姆在他的视频中手动添加了这一点

我发现我可以进入MainPage.xaml的opening UserControl标签并添加
Loaded=“”
,这将在MainPage.xaml.cs中创建以下内容:

void Page_Loaded(object sender, RoutedEventArgs e)
    {

    }
private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {

    }
默认情况下,MainPage.xaml.cs中还有以下内容,在App.xaml.cs中的应用程序启动事件期间运行:

public MainPage()
    {            
        InitializeComponent();
    }
我需要找出插入代码的最佳位置,以更改xaml中我的
MediaElement
上的
源代码。我应该把它放在主页上吗?我应该添加
加载的
事件处理程序并将其放入
UserControl\u加载的
?如果它应该是
页面加载的
,在Silverlight 3中我在哪里可以找到它


任何帮助都将不胜感激。

“UserControl\u-Loaded”和“Page\u-Loaded”只是方法名称,名称并不重要(如果需要,可以将方法命名为“Foo”)。使这些方法发挥作用的是,它们附加到UserControl上加载的事件上(这是您在编辑MainPage.xaml文件时所做的)。

Ok,这很有意义。不过,将它们放在UserControl_Loaded而不是MainPage()中是否有好处?将代码放在构造函数中与加载的事件处理程序中的区别在于调用这些方法的时间。一旦实例化控件的实例,将首先调用构造函数。加载的事件将在之后某个时间触发。有时加载的一个优点是,在Xaml中对对象设置的任何属性在加载时都会初始化它们的值,而构造函数则不然。但是,由于您在构造函数中调用InitializeComponent(),只要代码在调用之后继续,这并不重要。