Witam.
Wpadłem na dziwny problem.
W aplikacji WPF przygotowuję FlowDocument do wyświetlenia budując w kodzie stringa z zawartością FlowDocument, który potem wyświetlam w kontrolce FlowDocumentReader. W dokumencie tym wyświetlam obrazki, które zapisuję na plik i wstawiam odnośnik do nich w Image. Przykładowa konstrukcja:

<Paragraph Margin="0">
  <Image Width="7cm" Margin="0">
    <Image.Source>
        <BitmapImage UriSource="C:\Obrazki\LogoTmp.jpg" CacheOption="None" />
    </Image.Source>
  </Image>
</Paragraph>

Przed każdym wyświetleniem dokumentu podmieniam plik obrazu na dysku (plik może zmienić użytkownik).
Przy pierwszym wywołaniu okna wszystko jest ok. Jednak przy drugim wywołaniu okna nie mogę zamienić pliku obrazu dyskowego, gdyż dostaję błąd dostępu do pliku, ponieważ jest używany przez inny proces. Doszedłem do tego że plik blokuje moja aplikacja. Okno w którym wyświetlam dokument jest używane przez wszystkie opcje aplikacji ale jest zawsze ładowane jako nowa instancja (ze zmiennej lokalnej).
Zauważyłem że dopóki nie załaduję FlowDocumentReader'a innym dokumentem to obrazki są trzymane przez aplikację. Próbowałem już czyścić zawartość FlowDocumentReader'a przypsując mu wartość NULL na zamknięciu okna ale to nie pomaga.
Czy jest jakaś możliwość ustawienia kontrolki Image w FlowDocument, która nie blokowałaby plików dyskowych?
Jestem pewny że to kontrolka FlowDocumentReader blokuje te pliki. Czy można jakoś odblokować te pliki ręcznie?

Może ktoś spotkał się już z tym problemem.