none
以编程的方式创建Silverlight对象 RRS feed

  • 常规讨论

  • Silverlight 1.0和Silverlight 2.0都可以以编程的方式创建Silverlight对象,前者使用JavaScript而后者使用例如C#语言。
    在Silverlight 1.0中,以编程的方式创建对象是很重要的,你可以参考How Do I video
    在Silverlight 2.0中,以编程的方式创建对象则更加简单,因为每个XAML对象由一个CLR对象所描述,你可以用你使用的任何一种语言例如C#来实例化。
    Ellipse myEllipse = new Ellipse();
    parentCanvas.Children.Add(myEllipse);
    myEllipse.Width = 120;
    myEllipse.Height = 50;
    myEllipse.SetValue(LeftProperty, 150);
    myEllipse.SetValue(TopProperty, 10);
    myEllipse.StrokeThickness = 2;
    myEllipse.Stroke = new SolidColorBrush(Colors.Blue);
    一个早期的关于动态实例化Silverlight对象的示例,你可以查看这个How Do I video

    我最近收到来自一个开发人员的关于在以XAML和以编程方式定义Silverlight对象的相关优点的问题。该组织中的一些开发人员辩论,以编程方式定义所有的对象要好一些,“这样他们可以控制得更多”。

    我认为,在code-behind实例化Siverlight对象的关键点在于,你可以在你的程序运行过程中对触发的事件创建这些对象。其缺点是,这将非常难使用工具(例如,Expression Designer)来创建或者操作你的对象,并且我不确信通过在设计时创建这些对象你会放弃任何层次的控制。

    幸运的是,你没有被迫使做一个不是/就是的选择;你可以创建你的对象使用一个设计工具,然后在运行时,操作这些对象或者根据事件在输出中创建新的对象。

    我个人比较反对以编程的方式来创建每一个对象,我怀疑中到长期的维护费用将会非常高,因为你会发现使用这些设计工具的好处;当然,这是普遍的,对于特殊的项目我们还得做具体的评估。
    2009年4月23日 8:50