在我的 silverlight 应用程序中,我试图获取加载到图像控件中的 png 图像的实际尺寸。
在网上浏览了一段时间后,我了解到在 silverlight 3 中有一个名为 PixelHeight 和 PixelWidth 的属性。
所以我想知道升级到 Silverlight 3 是否可行,因为它处于测试阶段,不希望我的应用程序突然充满错误。
请注意,我正在为学校作业做这个项目,所以 silverlight 的版本控制并不重要。
在我的 silverlight 应用程序中,我试图获取加载到图像控件中的 png 图像的实际尺寸。
在网上浏览了一段时间后,我了解到在 silverlight 3 中有一个名为 PixelHeight 和 PixelWidth 的属性。
所以我想知道升级到 Silverlight 3 是否可行,因为它处于测试阶段,不希望我的应用程序突然充满错误。
请注意,我正在为学校作业做这个项目,所以 silverlight 的版本控制并不重要。
尽管 Silverlight 3 预计将向后兼容 Silverlight 2,但预计会遇到一些问题。转换向导做得很好,但您不能完全信任它。
您为什么不尝试一下,看看您的情况是否看起来很完美?
从 Silverlight 3 和 Expression Blend 3 可用之日起(现在大约一个月),我一直在使用它们,并且没有遇到任何实际问题。我什至能够在紧要关头将一些 Silverlight 3 应用程序转换为 Silverlight 2 应用程序。
请注意,一旦升级到 Silverlight 3,您将无法再在您的计算机上创建 Silverlight 2 应用程序。这意味着您创建的任何应用程序只能由运行 Silverlight 3 测试版的其他人查看。
安装适用于 Visual Studio 的 Silverlight 3 Beta 工具后,您的开发环境将成为 Silverlight 3 Beta 环境。Visual Studio 2008 SP1 不支持 Silverlight 应用程序的多目标,因此一旦安装了这些工具,您将无法开发 Silverlight 2 应用程序。如果您仍需要开发 Silverlight 2 应用程序的能力,我们建议您在单独的环境中安装 Silverlight 3 Beta 工具。
确保您已安装 Visual Studio 2008 SP1 或 Visual Web Developer Express 2008 SP1,因为它是适用于 Visual Studio 的 Silverlight 3 Beta 工具的先决条件。以下是您想要开始使用的其他工具:
我发现了一个真正的问题: - ItemsControl 中的模板属性无法按预期工作。
我试图在运行时更改它。像这样的东西:
private void OnClickTemplate1(object sender, RoutedEventArgs e)
{
ResourceDictionary rd = this.LayoutRoot.Resources;
if (rd != null)
{
ControlTemplate ct = rd["Template1"] as ControlTemplate;
if (ct != null)
{
this.itemscontrol.Template = ct;
}
}
}
之后,所有项目都从 ItemsControl 中消失。Silverlight 2 中没有这样的问题。
看起来 Silverlight 3 将在下个月中旬(已提到 7 月 10 日)进入 RTW,因此您可能要等到那时再拿起已发布的版本。
就我而言,我发现测试版完全稳定。
我已经使用 SL3 几个星期了,没有遇到任何实际问题。我遇到的一些问题是,浏览器应用程序不支持程序集缓存,并且 ADO.NET 数据服务在浏览器之外不起作用(改用 .NET RIA 服务)。到目前为止,一切都很好!