Ich versuche gerade, ein Bild in einem WPF-Dialog anzuzeigen, der jederzeit vom Benutzer ersetzt werden kann, wodurch diese Bilddatei überschrieben wird. Mein Problem ist: Während das Bild in meinem Dialog angezeigt wird, scheint das Bild von WPF gesperrt zu sein. Wenn ich versuche, es zu ersetzen, kann es nicht zugegriffen werden.WPF-Datenbindung zu Bilddatei sperrt diese Datei für immer
Wie kann ich WPF zwingen, das Bild zu veröffentlichen, wenn ich ein neues lade? Hier ist ein Teil meines Code:
XAML:
<Image Margin="6" VerticalAlignment="Center" HorizontalAlignment="Center" Source="{Binding ImageFileFullPath}"/>
C#:
string sourceFile = openFileDialog.FileName;
string destinationFile = Path.Combine(Environment.ExpandEnvironmentVariables(Constants.ImagePathConstant), destinationFileWithoutPath);
mViewModel.ImageFileFullPath = ""; //temporarily set the image file to another entry hoping WPF releases my image
try
{
File.Copy(sourceFile, destinationFile, true); //fails the second time with exception
}
catch (Exception)
{
throw;
}
Auch versuchen, das Bild auf einen leeren Pfad zu setzen vorübergehend das Problem nicht beheben.
Ausnahme erhalte ich: Eine nicht behandelte Ausnahme des Typs ‚System.IO.IOException‘ in PresentationFramework.dll aufgetreten
Check http: // Stackoverflow. com/questions/1688545/probleme-überschreiben-wieder-speichern-bild-wenn-es-wurde-als-bild-source gesetzt –