我可以在独立的XAML文件中使用自定义控件吗?

时间:2009-02-05 03:10:06

标签: silverlight

快速介绍:我有一些人们一直在编辑并放入HTML页面的Silverlight 1内容。不幸的是,这意味着很多重复创建故事板等等。我们可以使用Silverlight 2,但并不是每个人都熟悉C#/有Visual Studio。我想要做的是在C#中创建一些自定义控件,输出到DLL,然后在XAML文件中引用DLL(就好像它是VS中Silverlight项目的一部分)。

我尝试添加此内容:

xmlns:mycontrol="clr-namespace:MyControl;assembly=../../content_GLOBAL/controls/MyControl/MyControl"

在作为我的root的Grid标记中。我知道MyControl.dll的路径是正确的。当我实际尝试使用它时,(我将<mycontrol:MyControl></mycontrol:MyControl>添加到网格中)并且我得到一个解析器错误。如果我不添加控件,即使我留在xmlns中,这一切似乎都可以。

我认为在某种程度上,这是有道理的 - 如果你要构建一些东西,寻找一个程序集很有用,而且由于这个XAML不在VS中,它实际上并没有构建任何东西。是否有其他方法可以引用,并在独立的XAML文件中使用SL2中的自定义控件?

1 个答案:

答案 0 :(得分:1)

首先请确保我理解正确:您拥有一个不使用任何托管代码且未打包在.xap文件中的Silverlight应用程序。 &lt;对象&gt; tag指的是一个松散的xaml文件。

这是Silverlight 1应用程序模型,仍然可以在SL 2中使用,此类应用程序被称为“v1风格的应用程序”(即使它们针对SL 2并且可能使用v1中不存在的功能)。当使用此表单中的应用程序时,Silverlight插件不会加载运行时的任何托管组件(例如CLR等),因此从v1样式的应用程序引用dll将无法正常工作。

但是,您可能会面临挑战。一种解决方案可能是使用打包到.xap中并使用托管程序集的v2样式应用程序。你没有这样做的原因之一是其他开发人员团队不熟悉C#。这不应该是一个问题,因为C#不是在SL中构建应用程序的要求,您可以继续使用JavaScript对其进行编程。如果您只是编写JavaScript代码,则Visual Studio不是必需的,因为无需编译。他们只需编辑.html / .js文件并使用已编译的.xap / .dll文件。这有意义吗?