konto usunięte

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

Mam wyeksportowaną z Expression Design grafikę wektorową w postaci czystego pliku XAML, oto jego zredukowana wersja:
<Canvas Width="2" Height="2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Ellipse Height="2" Width="2" Fill="#FFFFFFFF"/>
</Canvas>

i chcę go stworzyć wiele razy w aplikacji. Gdyby to była kontrolka UserControl z wygenerowaną przez code-behind klasą to nie widzę problemu, ale w tym przypadku muszę:
- wszytać XAMLa jako string z Application.GetResourceStream, ale to mogę zrobić tylko raz
- za każdym razem ilekroć chcę kontrolkę otrzymać muszę wywołać XamlReader.Load(string) plus rzutowanie.

Ponieważ grafikę utrzymuje grafik jako luźny plik XAMLa, nie chciałbym wiązać się z nim mocno poprzez włączanie do projektu z code-behind. Czy jest inny sposób, aby tworzenie 100 instancji nie wiązało się ze 100krotnym wywołaniem XamlReader.Load ?
Obiektów będzie dużo, stanowią one tło całej gierki, które będą się dynamicznie pojawiać na ekranie w zależności od kontekstu.
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

A nie możesz raz załadować i pozwolić na dostęp przez wiele obiektów? Oczywiście wtedy nie będziesz mógł modyfikować tego, chyba że jako kopie dla konkretnej instancji.

konto usunięte

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

maciek kański:

Z tego co piszą w msdnie, to nie masz za dużego pola manewru przy klonowaniu. Zostaje chyba tylko refleksja.

http://forums.silverlight.net/forums/p/1730/268975.aspx

konto usunięte

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

A nie mozesz uzyc templatow ?

konto usunięte

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

maciek kański:
- za każdym razem ilekroć chcę kontrolkę otrzymać muszę wywołać XamlReader.Load(string) plus rzutowanie.
Obiektów będzie dużo, stanowią one tło całej gierki, które będą się dynamicznie pojawiać na ekranie w zależności od kontekstu.

Albo deep copy albo XamlReader.Load. Moze to pomoze:

http://khason.net/blog/drawingbrush-and-deep-clone-in-...

konto usunięte

Temat: SL: wielokrotne wykorzystanie czystego xaml'a

Dzięki za odpowiedź, info że się nie da (klonowanie przez reflection mi nie pasuje) to też jest informacje.

Podejrzałem zresztą w Reflectorze kod wygenerowany przez designer VS; czy moje XamlReader.Load czy też domyślne Application.LoadComponent kończą na wywołaniu natywnych metod i w obu przypadkach aby uzyskać jakąś kontrolkę używa się FrameworkElement.FindName - wnioskuję, że w obu metodach wydajność będzie porównywalna.

Następna dyskusja:

Wykorzystanie DLL w procedu...




Wyślij zaproszenie do