У меня есть следующий xaml
(обратите внимание, что он используется в действии Microsoft Workflow Foundation и содержится в <sap:ActivityDesigner.Icon>
. Надеюсь, это не имеет значения, но я подумал, что упомянул бы об этом.)
<DrawingBrush>
<DrawingBrush.Drawing>
<ImageDrawing>
<ImageDrawing.Rect>
<Rect Location="0,0" Size="16,16" ></Rect>
</ImageDrawing.Rect>
<ImageDrawing.ImageSource>
<BitmapImage UriSource="MyImage.png"/>
</ImageDrawing.ImageSource>
</ImageDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
Мне нужно изменить UriSource во время выполнения, поэтому я решил использовать конвертер как таковой:
<DrawingBrush>
<DrawingBrush.Drawing>
<ImageDrawing>
<ImageDrawing.Rect>
<Rect Location="0,0" Size="16,16" ></Rect>
</ImageDrawing.Rect>
<ImageDrawing.ImageSource>
<BitmapImage UriSource="{Binding Path=MyObject, Converter={StaticResource NameToImageConverter}}"/>
</ImageDrawing.ImageSource>
</ImageDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
, но если попытаться привязать его к моему объекту и использовать конвертер , Я получаю следующую ошибку:
Предоставленный DependencyObject не является контекстом для этого Freezable
Обратите внимание, что он не попадает в мой конвертер.
Я обнаружил Предоставленный DependencyObject не является контекстом для этого Freezable WPF c#, который, как я думал, поможет, но безрезультатно.
При установке имени для объекта BitmapImage
<BitmapImage Name="MyBitmapImage"/>
Я думал, что смогу установить это с помощью кода, но все равно получаю ту же ошибку.
I не знаю, что я сделал с тех пор, как впервые посмотрел на это, но изначально у меня была ошибка, в которой говорилось что-то вроде того, что я должен использовать beginInit и endInit. Извините, нет точной ошибки, так как я не могу ее воспроизвести.
Есть идеи, как этого можно достичь?
Спасибо.