微软有一个关于各种控件的方便参考 System.Windows.Controls 命名空间以及运行时中包含哪些控件.

对于此处列出的未包含在运行时中的任何控件,您必须包含对 System.Windows.Controls 程序集的引用,并在 Visual Studio 中选择“复制本地”。这就是我目前正在做的事情并且它有效。

但是,通过包含此 DLL,我向 XAP 文件添加了近 80 KB(而我的 XAP 文件只有 110 KB)。我使用的唯一需要它的控件是 GridSplitter。有没有办法重建仅包含 GridSplitter 的该程序集的压缩版本?

有帮助吗?

解决方案

它看起来像我刚刚找到了答案为Silverlight 2 ...

源代码的Silverlight 2运行时和SDK控制

我认为,会为我的工作现在。我应该能够去通过该项目,并排除该项目的所有无用位,并做了重建。

我仍然使用Silverlight 2,但我会在几个月被切换到3。我似乎无法找到为Silverlight 3,同样的事情也许源还没有提供为Silverlight 3?

更新:

所以我通过一些铁圈跳后得到了这个工作。起初,我下载了微软的源项目,然后刚开始去除填充。但后来我发现,我不能构建解决方案。其实我也不构建解决方案的未修改版本。我得到有关强名称验证错误。我试图取消选中强名称从项目属性的“签名”部分签约,但我得到了同样的错误。我甚至增加了组件的强名称验证跳跃列表,并终于得到了过去的错误。但是,当我试图包括我的Silverlight项目的新组件,并在浏览器中运行它,我得到了一个空白页面(Silverlight控件从不加载)。我仍然不知道为什么,但我敢肯定,我失去了一些东西。

最后,我刚刚创建了一个新的项目。看来我应该从一开始就做到了这一点。我只需要为GridSplitter创建一个空的C#的Silverlight类库。然后,我开始添加源文件所需GridSplitter这个项目,然后我设置的命名空间和组件名称System.Windows.Controls。在我的Silverlight应用程序构建这个项目,并引用它后,它终于奏效。结果:60 KB储蓄

我写了一些关于这个位置:

http://regexhero.net/blog/2009 /09/optimizing-silverlight-xap-file.html

在任何情况下,希望他们,我已经得到了控制4从SDK在这里...

http://www.silverlightxap.com/controls/tagged/silverlight-sdk

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top