Korzystam z pomyślnej wersji XamlReader
do załadowania pliku xaml i utworzenia FrameworkElement
do pracy.Wiązania nie są stosowane do dynamicznie ładowanego pliku xaml
XAML jestem ładowanie ma wiążących w nim wyrażeń takich jak:
<TextBlock Text="{Binding DataContextTextProperty}" />
Gdybym to FrameworkElement wrócę z XamlReader.Load()
w oknie WPF, wiązanie wszystko działa poprawnie. W tym przypadku używam Laurent Bugnion's excellent article on creating PNGs from WPF/XAML. Ponieważ wynik XamlReader.Load()
jest zapisywany bezpośrednio do PNG poprzez VisualBrush
, wydaje się, że niezbędne mechanizmy WPF do wywoływania wyrażeń wiążących są ominięte.
To prowadzi mnie do przekonania, że rzeczywiste wiązania nie są wywoływane po prostu przez wywołanie XamlReader.Load()
, lub że nie działają z powodu czegoś, o czym nie wiem, że nie jest drzewo wizualne do dodajesz FrameworkElement
do istniejącego drzewa wizualnego lub czegoś podobnego.
Czy jest coś, co mogę zrobić, aby wywołać te wiązania?
Wielkie dzięki z góry.
Sądzę, że wymagane jest podanie układu i renderowania, aby widok mógł być zapisywany jako obraz i jest to możliwe tylko wtedy, gdy załadujemy go na wizualne drzewo. Popraw mnie, jeśli się mylę. Chociaż XamlWriter z FlowDocument to trochę inna historia. –
@AngelWPF Udało mi się go rozwiązać i opublikowałem odpowiedź poniżej. Wygląda na to, że zachowuję się tak, jak chcę, więc pod warunkiem, że nie popełniłem jakiegoś naiwnego błędu, zrobię to. Nie mogę ci powiedzieć, jak mi ulżyło, że to działa ... –