IronPrint'te ShowPrintDialog Davranışı (2024.9 Sonrası)

This article was translated from English: Does it need improvement?
Translated
View the article in English

ShowPrintDialog ve ShowPrintDialogAsync, desteklenmeyen bir hedef çerçevesinde çağrıldığında artık bir istisna fırlatmıyor. 2024.9 sürümünden itibaren, bir uyarı kaydediyor ve bunun yerine PrintAsync()'ye dönüş yapıyor.

Bu değişiklikten önce, uyumlu bir TargetFramework olmadan her iki yöntemi çağırmak aşağıdaki hatayı veriyordu:

System.AggregateException: 'One or more errors occurred.
(Please try Print/PrintAsync since ShowPrintDialog/ShowPrintDialogAsync in NET Core or NET Standard,
it required UI component so please set more specific OS TargetFrameworks
e.g. net462; net472; net7.0-windows; net7.0-macos; net7.0-maccatalyst; net7.0-android)'

Diyalog metodlarının bir UI bileşenine ihtiyacı vardır; bu, düz .NET Çekirdeği veya .NET Standard hedeflerinde mevcuttur değil. Önceki yapılar bunu bir sert hata olarak değerlendirdi ve attı. İstisna çalıştırma zamanında kesintiye neden olduğundan, davranış 2024.9'da kasıtlı olarak değiştirildi.

Çözüm

Geriye dönük kayıta kalıcıdır, ancak doğru yolu seçerek hangi yolun çalışacağını kontrol edebilirsiniz.

1. Otomatik Geri Dönüş Rely On

Desteklenmeyen bir çerçevede, çağrı artık bir uyarı kaydediyor ve atmak yerine PrintAsync()'ye yönlendiriyor. Mevcut kod bir çökme olmadan çalışmaya devam eder, ancak herhangi bir yazdırma diyaloğu görünmez.

UyarıGeriye dönüş diyaloğsuz olarak yazdırır. Kullanıcılar, desteklenmeyen hedeflerde yazdırma istemi görmezler, bu yüzden bir UI çerçevesini hedeflemedikçe diyaloğun gösterileceğine bağımlı olmayın.

2. Diyalog için UI-Uygun Çerçeveyi Hedefleyin

Gerçek yazdırma diyalogunu almak için UI desteğini içeren bir işletim sistemine özgü hedefe karşı derleyin:

<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
XML

Bu çerçevelerden biri var olduğunda, ShowPrintDialog ve ShowPrintDialogAsync beklenildiği gibi iletişim kutusunu gösteriyor.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 44,051 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPrint
bir örnek çalıştır belgenizin yazıcıya ulaşmasını izleyin.