探索Silverlight 5的不足之处

尽管Silverlight 5是一个功能强大的框架,它为开发人员提供了许多优秀的工具和特性,但在使用过程中,仍然发现了一些不尽如人意的地方。本文将讨论这些不足之处,并提出一些可能的改进建议。需要注意的是,这些观点仅代表个人看法,期待在未来的版本中看到这些问题得到解决。

问题点 #1:窗口控制的缺失

在Silverlight 5中,发现没有提供创建窗口控制的模板。这意味着无法直接在XAML中创建窗口,也无法使用如Blend这样的设计工具来设计和使用窗口。目前,只能创建一个UserControl,并从代码后台动态地添加它。认为应该提供一个创建窗口的模板,并允许使用设计工具更改模板。

问题点 #2:窗口类的不可继承性

探索Window类时,注意到这个类是密封的(sealed),这意味着无法继承这个类来创建自定义的窗口控制。

问题点 #3:缺少Open()方法

尽管存在Close()方法,但对缺少Open()方法感到困惑。目前,只能使用Visibility属性来显示窗口。

public sealed class Window : DependencyObject { public Window(); public double Height { get; set; } public double Width { get; set; } public double Left { get; set; } public double Top { get; set; } public bool TopMost { get; set; } public bool IsActive { get; } public WindowState WindowState { get; [SecuritySafeCritical] set; } public string Title { get; set; } public FrameworkElement Content { get; set; } public bool IsVisible { get; } public Visibility Visibility { get; set; } public WindowStyle WindowStyle { get; set; } [SecuritySafeCritical] public bool Activate(); public void Close(); [SecuritySafeCritical] public void DragMove(); [SecuritySafeCritical] public void DragResize(WindowResizeEdge resizeEdge); public static Window GetWindow(DependencyObject dependencyObject); public event EventHandler Closing; }

问题点 #4:TopMost属性的无效性

还注意到,尽管尝试将TopMost属性设置为true,以使窗口保持在其他窗口之上,但遗憾的是,这个属性并没有起作用。

如Vikram在他的博客文章中提到的,如果窗口大小大于内容大小,那么未被内容覆盖的部分会显示为黑色背景。几天前讨论了这个问题。

在检查Window类时,注意到类中没有提到Background属性,因此无法设置窗口背景的颜色。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485