Файлы .png с нулевым размером файла приведут к такой же ошибке.

рограммировал приложение, чтобы оно загружало файлы * .png и устанавливало его на фоне кнопки вWPF, Итак, когда я запускаю эту программу, она сталкивается с ошибкой как

Не найдено ни одного компонента, подходящего для выполнения этой операции ».

Мой код, как показано ниже:

Первое приложение загружает файл сWebClient Объект класса:

System.Net.WebClient wClient = new System.Net.WebClient();
Uri downloadUri = new Uri(MyUri, UriKind.Absolute);
wClient.DownloadFileAsync(downloadUri, "MyImage.png");
wClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wClient_DownloadFileCompleted);

и когда загрузка завершена, произошло событие:

ImageBtn.Dispatcher.Invoke(new Action(() =>
{
    ImageBrush ib = new ImageBrush();
    BitmapImage bi = new BitmapImage();
    bi.BeginInit();
    bi.UriSource = new Uri("MyImage.png", UriKind.Relative);
    bi.EndInit();

    ib.ImageSource = bi;
    ImageBtn.Background = ib;
}

НОТА Из-за запуска этих блоков кодов вBackgroundWorker, Я используюDispatcher установить кнопкуBackground свойство

Итак, когда я запускаю программу,System.NotSupportedException произошло как показано ниже:

Исключение из HRESULT: 0x88982F50 Код ошибки: -2003292336 Сообщение: не найден компонент формирования изображения, подходящий для выполнения этой операции. Источник: трассировка стека PresentationCore: в System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream (Uri uri, потоковый поток, BitmapCacheOption cacheOption, Guid & clsId, логический и isOriginalWritable, безопасный и безопасный метод Imaging.BitmapDecoder.CreateFromUriOrStream (URI baseUri, Uri uri, Поток потока, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, логический insertInDecoderCache) в System.Windows.Media.ImaImaImama.ImaI.B BitmapSource.CompleteDelayedCreation ()
в System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle ()
в System.Windows.Media.Imaging.BitmapSource.get_DUCECompatiblePtr ()
в System.Windows.Media.Imaging.BitmapSource.UpdateBitmapSourceResource (канальный канал, логический skipOnChannelCheck) в System.Windows.Media.Imaging.BitmapSource.AddRefOnChannelCore (канальный канал) в System.Windows.Media.SystemSit. Media.Composition.DUCE.IResource.AddRefOnChannel (канал канала) в System.Windows.Media.ImageBrush.AddRefOnChannelCore (канал канала)
на System.Windows.Media.Brush.System.Windows.Media.Composition.DUCE.IResource.AddRefOnChannel (канал канала) на System.Windows.Media.RenderData.System.Windows.Media.Composition.DUCE.IResource.AddRefOnChannel (канал канал) в System.Windows.UIElement.RenderContent (RenderContext ctx, Boolean isOnChannel) в System.Windows.Media.Visual.UpdateContent (RenderContext ctx, флаги VisualProxyFlags, логический isOnChannel) в System.Windows.Media.Exurt. ) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (обработчик ресурсов), текстовый ресурс RenderContext System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext.indows cx) .Visual.UpdateChildren (RenderCo ntxt ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.Media.Vteur. ) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (обработчик ресурсов), текстовый ресурс RenderContext System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext.indows cx) .Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx. дескриптор System.Widual.Windows) .RenderRecur sive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.VisildCtend. Дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (рендер RenderContext ctx, ResourceHandle) в System.Windows.Media.Visual.RenderRectet) .Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (рендер RenderContext) .Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows. UpdateChildren (Рендер Контекст ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.Media.VisurtxRender ) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (обработчик ресурсов), текстовый ресурс RenderContext System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext.indows cx) .Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx. дескриптор System.Widual.Windows) .RenderRec ursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visht. Дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.Render (RenderContext ctx, UInt32 childIndex) в System.Windows.Media.CompositionTarget.Compile (канал канала) .Windows.Media.CompositionTarget.System.Windows.Media.ICompositionTarget.Render (логическое значение inResize, канал канала) в System.Windows.Media.MediaContext.Render (ICompositionTarget resizedCompositionTarget) в System.Windows.Margeia.MediaCom () ) в System.Windows.Media.MediaContext.RenderMessageHandler (Object resizedCompositionTarget) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, Int32 numArgs) в MS.Internal. Threading.ExceptionFilterHelper.TryCatchWhen (Источник объекта, Метод делегата, Аргументы объекта, Int32 numArgs, Делегат catchHandler) в System.Windows.Threading.DispatcherOperation.InvokeImpl () в System.Threading.ExecutionContext.runTryCode (Object userData) в System.DataTime. CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (код TryCode, backoutCode CleanupCode, объект userData) в System.Threading.ExecutionContext.Run (обратный вызов ExecutionContext executeContext, контекстная обратная связь ContextCallback, состояние объекта, обратный вызов Execution.Conject , Состояние объекта) в System.Windows.Threading.DispatcherOperation.Invoke () в System.Windows.Threading.Dispatcher.ProcessQueue () в System.Windows.Threading.Dispatcher.WndProcHook (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lPm , Логическое и обработанное) в MS.Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean & handled) в MS.Win32.Hw ndSubclass.DispatcherCallbackOperation (Object o) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, Int32 numArgs) в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (источник объекта, метод делегата, объектные аргументы, объектные аргументы, Int32, Делегат catchHandler) в System.Windows.Threading.Dispatcher.InvokeImpl (приоритет DispatcherPriority, тайм-аут TimeSpan, метод делегата, аргументы объекта, int32 numArgs) в MS.Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd, Int32TMPT), в MS.Win32.UnsafeNativeMethods.DispatchMessage (MSG & msg) в System.Windows.Threading.Dispatcher.PushFrameImpl (фрейм DispatcherFrame) в System.Windows.Application.RunDispatcher (игнорирование объектов)
в System.Windows.Application.RunInternal (окно Window) в WPF_KSMMessenger.App.Main () в C: \ Users \ Hossein \ Desktop \ WPF_KSMMessenger \ WPF_KSMMessenger \ obj \ x86 \ Debug \ App.g.cs: строка 0 в системе .AppDomain._nExecuteAssembly (сборка RuntimeAssembly, аргументы String []) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое значение ignoreSyncCtx) в System.Threading.ExecutionContext.Run (обратный вызов ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThelH

Что я должен сделать, чтобы решить эту проблему?

Спасибо за внимание.

Ответы на вопрос(1)

Ваш ответ на вопрос