2009-09-01 6 views
1

Microsoft имеет удобную ссылку различных элементов управления в System.Windows.Controls namespace and which controls are included in the runtime.Как включить определенные элементы управления из System.Windows.Controls в моем приложении Silverlight?

Для любых элементов управления, перечисленных здесь, которые не включены в среду выполнения, вы должны включить ссылку на сборку System.Windows.Controls и выбрать «скопировать локальную» в Visual Studio. Так вот что я сейчас делаю, и это работает.

Однако, включив эту DLL, я добавляю почти 80 КБ к моему файлу XAP (и мой файл XAP составляет всего 110 КБ). Единственный элемент управления, который я использую для этого, - это GridSplitter. Есть ли способ перестроить сконденсированную версию этой сборки, которая включает только GridSplitter?

ответ

2

Похоже, я только что нашел ответ для Silverlight 2 ...

Source Code for Silverlight 2 Runtime and SDK Controls

И я думаю, что будет работать для меня на данный момент. Я должен быть в состоянии пройти проект и исключить все ненужные биты из проекта и выполнить перестройку.

Я по-прежнему использую Silverlight 2, но я буду переключаться на 3 через пару месяцев. И я не могу найти то же самое для Silverlight 3. Возможно, источник еще не доступен для Silverlight 3?

UPDATE:

Так что я получил эту работу после того, как прыжки через обручи. Сначала я загрузил исходный проект из Microsoft, а затем просто начал удалять вещи. Но потом я заметил, что я не мог построить решение. На самом деле я тоже не смог построить немодифицированную версию решения. Я получал ошибки в проверке сильного имени. Я попытался отключить сильное подписание имени из раздела «Подписание» свойств проекта, но я получил ту же ошибку. Я даже добавил сборку в список пропущенных имен и, наконец, пропустил ошибку. Но когда я попытался включить новую сборку в свой проект Silverlight и запустить ее в браузере, я бы получил пустой экран (никогда не загружался элемент управления Silverlight). Я все еще не уверен, почему, но я уверен, что чего-то не хватает.

Наконец-то я только что создал новый проект. Кажется, я должен был это сделать с самого начала. Мне просто нужно было создать пустую библиотеку классов Silverlight C# для GridSplitter. Затем я начал добавлять исходные файлы, необходимые для GridSplitter для этого проекта, а затем я установил имя пространства имен и имя сборки в System.Windows.Controls. После создания этого проекта и ссылки на него в моем приложении Silverlight он, наконец, работал. Результат: экономия в 60 КБ.

Я написал немного больше об этом здесь:

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

В случае, если кто хочет их, я получил 4 из управления из SDK прямо здесь ...

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

+1

Код Silverlight 2 должен работать в Silverlight 3. – KeithMahoney

+0

Да, хорошо. Я думаю, что это первый раз, когда я принял свой ответ на свой вопрос. –

 Смежные вопросы

  • Нет связанных вопросов^_^