2009-09-01 14 views
1

マイクロソフトでは、System.Windows.Controls namespace and which controls are included in the runtimeにさまざまなコントロールの便利なリファレンスがあります。SilverlightアプリケーションにSystem.Windows.Controlsの特定のコントロールを含めるにはどうすればよいですか?

ランタイムに含まれていないここに列挙されているコントロールでは、System.Windows.Controlsアセンブリへの参照を含め、Visual Studioで「ローカルコピー」を選択する必要があります。それは私が現在やっていることであり、うまくいきます。

しかし、このDLLを含めることで、XAPファイルに約80 KBを追加します(XAPファイルはわずか110 KBです)。私が使用している唯一のコントロールは、GridSplitterです。 GridSplitterのみを含むこのアセンブリの要約版を再構築する方法はありますか?

答えて

2

それは私がちょうどSilverlight 2のための答えを見つけたように見える...

Source Code for Silverlight 2 Runtime and SDK Controls

そして、私はそれが今の私のために働くだろうと思います。私はプロジェクトを通過し、不要なビットをすべてプロジェクトから除外して再構築できるはずです。

私はまだSilverlight 2を使用していますが、2,3ヶ月で3に切り替わります。 Silverlight 3では同じことを見つけることができないようです。Silverlight 3ではまだソースが利用できないのでしょうか?

UPDATE:

だから私はいくつかのフープを介してジャンプした後に、この作業を得ました。最初はMicrosoftからソースプロジェクトをダウンロードしてから、削除し始めました。しかし、その後私は解決策を構築できないことに気づいた。実際、私は解決策の未修正バージョンも作成できませんでした。私は厳しい名前の検証について間違いを起こしていました。私はプロジェクトのプロパティの "署名"セクションから強力な名前の署名のチェックを外してみましたが、同じエラーが発生しました。私もアセンブリを厳密な名前検証のスキップリストに追加し、最終的にエラーを乗り越えました。しかし、Silverlightプロジェクトに新しいアセンブリを組み込み、ブラウザで実行しようとすると、空白の画面が表示されます(Silverlightコントロールはロードされません)。なぜ私はまだ分かりませんが、私は何かが欠けていたと確信しています。

最後に、新しくプロジェクトを作成しました。私はこれを最初からやるべきだったようだ。私は、GridSplitter用の空のC#Silverlightクラスライブラリを作成する必要がありました。次に、GridSplitterに必要なソースファイルをこのプロジェクトに追加し始め、名前空間とアセンブリ名をSystem.Windows.Controlsに設定しました。このプロジェクトをビルドして、それを私のSilverlightアプリケーションで参照したところ、最終的に機能しました。その結果、60KBの節約となりました。

私はここでこのことについてもう少し書いた:

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

を誰もがそれを望んでいる場合は、私が...右ここSDKから

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

をコントロールの4を持っています
+1

Silverlight 2のコードはSilverlight 3で動作するはずです。 – KeithMahoney

+0

ええ、良い点。私は自分の質問に対する私の答えを受け入れたのはこれが初めてだと思う。 –

関連する問題