Я запрограммировал приложение для загрузки * .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, Stream, BitmapCacheOption cacheOption, Guid & clsId, Boolean & isOriginalWritable, Stream & uriStream, UnmanagedMemoryStream & unmanagedMemoryStream, SafeFileHandle & safeFilehandle) в System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream (URI baseUri, Uri uri, Потоковый поток, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, логический insertInDecoderCache.map.Id.Id.IdImaging.BitmapSource.CompleteDelayedCreation ()
в System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle ()
в System.Windows.Media.Imaging.BitmapSource.get_DUCECompatiblePtr () * 1030.edia в системе..Imaging.BitmapSource.UpdateBitmapSourceResource (канал канала, логическое значение skipOnChannelCheck) в System.Windows.Media.Imaging.BitmapSource.AddRefOnChannelCore (канал) в System.Windows.Media.Imaging.BitmapSource.Media.omia. WindowsIResource.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, логический isOnChannel) в System.WindowsОбъектWindows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Vis.ed.edistv для System.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandleis.Rec.(RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildourcehlend Render) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContextW).Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) вSystem.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Vis.ed.edistv для System.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandleis.Rec.(RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visild.UrenTexteh.обрабатывать) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext).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 ctx) в System.Wdh для Windows.(RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (дескриптор RenderContext ctx, ResourceHandle) в System.Windows.MxtiaRenderRecis.ctx) at System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContextChindle).Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext.Windows) att.Visual.UpdateChildren (RenderContext ctx, дескриптор ResourceHandle) в System.Windows.Media.Visual.RenderRecursive (RenderContext ctx) в System.Windows.Media.Visual.Render (RenderContext ctx, UInt32 childIndexMedia.Targe.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Tom.Com.Tom.Tom.Tom.Tom.Com.T.T.Компиляция (канал канала) в System.Windows.Media.CompositionTarget.System.Windows.Media.ICompositionTarget.Render (логический inResize, канал канала) в System.Windows.Media.MediaContext.Render (ICompositionTarget resizedCompositionTarget) в System.Windows.Media..Средства массовой информацииContext.RenderMessageHandlerCore (Object resizedCompositionTarget) в System.Windows.Media.MediaContext.RenderMessageHandler (Object resizedCompositionTarget) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата. Объектный арг. Intread.Inter.TryCatchWhen (Источник объекта, метод Delegate, аргументы объекта, Int32 numArgs, Delegate catchHandler) в System.Windows.Threading.DispatcherOperation.InvokeImpl () в System.Threading.ExecutionContext.runTryCode (Object userData) в System.Runtime.CompilerSerpersRus.ExecuteCodeWithGuaranteedCleanup (код TryCode, backoutCode CleanupCode, Object userData) вSystem.Threading.ExecutionContext.Run (ExecutionContext
executeContext, ContextCallback обратный вызов, состояние объекта, логическое значение
ignoreSyncCtx) в
System.Threading.ExecutionContext.Run (ExecutionContext
executeContext, обратный вызов ContextCallback, состояние объекта) в
System.Windows.Threading.DispatcherOperation.Invoke () в
System.Windows.Threading.Dispatcher.ProcessQueue () в
System.Windows.Threading.Dispatcher.WndProcHook (IntPtr hwnd, Int32
msg, IntPtr wParam, IntPtr lParam, Boolean и обрабатываются) в
MS.Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam,
IntPtr lParam, Boolean & handled) в
MS.Win32.HwndSubclass.DispatcherCallbackOperation (Object o) в
System.Windows.Threading.ExceptionWrapper.InternalRealCall (Делегат
обратный вызов, объектные аргументы, Int32 numArgs) в
MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Объект
источник, метод делегата, аргументы объекта, int32 numArgs, делегат
catchHandler) в
System.Windows.Threading.Dispatcher.InvokeImpl (DispatcherPriority
приоритет, время ожидания TimeSpan, метод делегата, аргументы объекта, Int32
numArgs) в MS.Win32.HwndSubclass.SubclassWndProc (IntPtr hwnd,
Интеллектуальный интервал времени: 32 мкс, IntPtr wParam, IntPtr lParam)
MS.Win32.UnsafeNativeMethods.DispatchMessage (MSG & msg) в
System.Windows.Threading.Dispatcher.PushFrameImpl (DispatcherFrame
frame) в System.Windows.Application.RunDispatcher (игнорирование объекта)
в System.Windows.Application.RunInternal (окно окна) в
WPF_KSMMessenger.App.Main () в
C: \ Users \ Хоссейн \ Desktop \ WPF_KSMMessenger \ WPF_KSMMessenger \ OBJ \ x86 \ Debug \ App.g.cs: линия
0 в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly,
Строка [] args) в
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ExecutionContext.Run (ExecutionContext
executeContext, ContextCallback обратный вызов, состояние объекта, логическое значение
ignoreSyncCtx) в
System.Threading.ExecutionContext.Run (ExecutionContext
executeContext, обратный вызов ContextCallback, состояние объекта) в
System.Threading.ThreadHelper.ThreadStart ()
Что я должен сделать, чтобы решить эту проблему?
Спасибо за внимание.