2009-09-01 10 views
1

Microsoft는 System.Windows.Controls namespace and which controls are included in the runtime에 다양한 컨트롤에 대한 편리한 참조를 제공합니다.Silverlight 앱에 System.Windows.Controls의 특정 컨트롤을 포함하려면 어떻게해야합니까?

런타임에 포함되지 않은 여기에 나열된 컨트롤의 경우 System.Windows.Controls 어셈블리에 대한 참조를 포함하고 Visual Studio에서 "로컬 복사"를 선택해야합니다. 그래서 그게 내가 현재하고있는 일이고 그것이 작동합니다.

그러나이 DLL을 포함하면 XAP 파일에 거의 80KB가 추가되고 XAP 파일은 110KB에 불과합니다. 사용하고있는 유일한 컨트롤은 GridSplitter입니다. GridSplitter 만 포함 된이 어셈블리의 응축 버전을 다시 작성하는 방법이 있습니까?

난 그냥 실버 라이트 2에 대한 답을 찾을 것 같습니다

답변

2

...

Source Code for Silverlight 2 Runtime and SDK Controls

그리고는 나는 지금은 날 위해 일하는 것 같아요. 프로젝트를 통해 불필요한 부분을 제외하고 다시 빌드 할 수 있어야합니다.

저는 아직 Silverlight 2를 사용하고 있지만 몇 달 후에 3으로 전환 할 예정입니다. 그리고 실버 라이트 3에서도 똑같은 것을 찾지 못하는 것 같습니다. 실버 라이트 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에서 컨트롤의 4있어 ...

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

+1

Silverlight 2 코드는 Silverlight 3에서 작동해야합니다. – KeithMahoney

+0

그래, 좋은 지적입니다. 나는 내 자신의 질문에 대한 나의 대답을 받아 들였을 때 이것이 처음이라고 생각한다. –

관련 문제