2009-10-02 12 views
6

Mam aplikację Silverlight, w której muszę użyć klasy Vector w System.Windows w projekcie sieci Web. Ale VS skarży się, że System.Windows nie istnieje. Próbowałem dodać odniesienie, ale nie ma go na liście dodawanych przestrzeni nazw. Na karcie .NET przechodzi ona z System.Web.Services do System.Windows.Forms i całkowicie pomija System.Windows.Brak odniesienia do System.Windows

Co jest naprawdę dziwne, że system.Windows istnieje na liście referencyjnej w projekcie Silverlight. Ponadto mam inną aplikację Silverlight na tej maszynie z dokładnie taką samą konfiguracją (dwa projekty, jeden Silverlight, jeden Web), a tam jest odniesienie.

Widziałem, że ktoś tutaj miał podobny problem, ale żadne z rozwiązań nie sprawdziło się u mnie. Czy ktoś inny tego doświadczył?

Odpowiedz

7

Znalazłem! Musisz dodać odniesienie do WindowsBase.

Zwykle (jak sądzę) do skonfigurowania aplikacji Silverlight są dwa projekty: jeden dla kodu klienta Silverlight, a drugi dla stron aspx po stronie serwera. Pula referencyjna Silverlight zawiera System.Windows. Pula referencyjna aspx tego nie robi. Zamiast tego jest to biblioteka DLL "WindowsBase", która udostępnia przestrzeń nazw System.Windows (i prawdopodobnie inne) w twoim bloku "using". Ale nie jest domyślnie uwzględniony w projekcie.

+0

To nie działa dla mnie. Próbuję użyć System.Windows.Media.Imaging.BitmapImage, więc myślę, że nie jest w WindowsBase. (Uwaga: Mogę dodać odniesienie do System.Windows.DLL po stronie klienta (sliverlight), ale nie po stronie serwera. – tkerwood

+1

to jest w (#region Assembly System.Windows.dll, v2.0.50727 // c: \ Program Files (x86) \ Zestawy referencyjne \ Microsoft \ Framework \ Silverlight \ v4.0 \ System.Windows.dll #endregion) Tak więc dostępne tylko po stronie klienta Silverlight. Zamiast tego obraz ... – tkerwood

+0

W Silverlight 5 to chyba nie działa ... – Knasterbax

0

Wygląda na to, że rozwiązanie opublikowane przez Klay nie działa z Silverlightem 5 (przynajmniej nie na moim komputerze).

Alternatywnie można użyć Vector2 klasę z Microsoft.Xna.Framework

Wymaga to jednak trochę przepisanie kodu opartego na System.Windows.Vector, ponieważ VNA Vector2 używa pływaków zamiast podwójnych.

Powiązane problemy