WPF'deki Belgeler

Windows Presentation Foundation (WPF) , önceki nesil Windows nesinden daha kolay erişilebilmesi ve okunması için tasarlanan yüksek kaliteli içerik oluşturulmasına olanak tanıyan çok çeşitli belge özellikleri sunar. Gelişmiş özellik ve kalite özelliklerine ek olarak, WPF belge görüntüleme, paketleme ve güvenlik için tümleşik hizmetler de sağlar. Bu konu WPF belge türlerine ve belge paketlemeye giriş sağlar.

Belge türleri

WPF belgeleri amaçlanan kullanım amaçlarına göre iki geniş kategoriye böler; Bu belge kategorileri "sabit belgeler" ve "akış belgeleri" olarak adlandırılır.

Sabit belgeler, kullanılan ekran veya yazıcı donanımından bağımsız olarak kesin bir "gördükleriniz, sizin alacağınız Özellikler" (WYSıWYG) sunumu gerektiren uygulamalar için tasarlanmıştır. Sabit belgeler için tipik kullanımlar, masaüstü yayımlama, sözcük işleme ve form düzeni içerir. Bu, Özgün sayfa tasarımına yönelik bağlılığı önemli bir öneme sahiptir. Düzeninin bir parçası olarak, sabit bir belge, kullanımda olan görüntüleme veya yazdırma cihazından bağımsız olarak içerik öğelerinin kesin konumsal yerleşimini saklar. Örneğin, 96 DPI ekran üzerinde görüntülenen sabit bir belge sayfası, bir 4800 dpi phototypesetter 'a çıktı olduğunda bir 600 DPI lazer yazıcıya çıktı olduğunda tam olarak aynı görüntülenir. Sayfa düzeni her durumda aynı kalır, ancak belge kalitesi her bir cihazın özelliklerine en üst düzeye çıkarır.

Bilgi, akış belgeleri, görüntüleme ve okunabilirliği iyileştirmek için tasarlanmıştır ve okuma kolaylığı birincil belge tüketim senaryosuyla kullanılırken en iyi şekilde kullanılır. Akış belgeleri, önceden tanımlanmış bir düzene ayarlanmaktansa, pencere boyutu, cihaz çözünürlüğü ve isteğe bağlı Kullanıcı tercihleri gibi çalışma zamanı değişkenlerine göre içeriğini dinamik olarak ayarlayıp yeniden düzenler. Web sayfası, sayfa içeriğinin dinamik olarak geçerli pencereye sığacak şekilde biçimlendirildiği bir akış belgesine ilişkin basit bir örnektir. Akış belgeleri, çalışma zamanı ortamına bağlı olarak Kullanıcı için görüntüleme ve okuma deneyimini iyileştirir. Örneğin, aynı Flow belgesi, yüksek çözünürlüklü 19 inç ekran veya küçük 2x3 inç PDA ekranında en iyi okunabilirlik için dinamik olarak yeniden biçimlendirir. Ayrıca, akış belgelerinin arama, okunabilirliği en iyileştiren modlar ve yazı tiplerinin boyutunu ve görünümünü değiştirme özelliği dahil olmak üzere çeşitli yerleşik özellikleri vardır. Akış belgeleri hakkında çizimler, örnekler ve ayrıntılı bilgi için bkz. akış belgesi genel bakış .

Belge denetimleri ve metin düzeni

.NET Framework, uygulamanızda sabit belgeler, akan belgeler ve genel metin kullanmayı kolaylaştıran önceden oluşturulmuş denetimler kümesi sağlar. Sabit Belge içeriğinin görünümü Denetim kullanılarak desteklenir DocumentViewer . Flow belgesi içeriğinin görüntülenmesi üç farklı denetim tarafından desteklenir: FlowDocumentReader , FlowDocumentPageViewer ve FlowDocumentScrollViewer farklı kullanıcı senaryolarıyla eşlenir (aşağıdaki bölümlere bakın). Diğer WPF Denetimler genel metin kullanımlarını desteklemek için Basitleştirilmiş düzen sağlar (aşağıda, Kullanıcı arabirimindeki metinkısmına bakın).

Sabit belge denetimi-DocumentViewer

DocumentViewerDenetim, içeriği göstermek için tasarlanmıştır FixedDocument . DocumentViewerDenetim, Yazdırma çıktısı, pano, yakınlaştırma ve metin arama özelliklerine kopyalama gibi yaygın işlemler için yerleşik destek sağlayan sezgisel bir kullanıcı arabirimi sağlar. Denetim, bildiğiniz bir kaydırma mekanizmasıyla içerik sayfalarına erişim sağlar. Tüm WPF denetimler gibi, DocumentViewer denetimin neredeyse tüm uygulama veya ortamla görsel olarak tümleştirilmesini sağlayan, tümüyle veya kısmi yeniden stillendirme desteklenir.

DocumentViewer içeriği salt bir şekilde görüntüleyecek şekilde tasarlanmıştır; içerik düzenlemesi veya değiştirilmesi kullanılamaz ve desteklenmez.

Akış belgesi denetimleri

Not

Akış belgesi özellikleri ve bunların nasıl oluşturulacağı hakkında daha ayrıntılı bilgi için bkz. Flow belgesine genel bakış.

Akış belgesi içeriğini görüntüleme üç denetim tarafından desteklenir: FlowDocumentReader , FlowDocumentPageViewer , ve FlowDocumentScrollViewer .

FlowDocumentReader

FlowDocumentReader kullanıcının tek sayfalı (sayfa-bir zaman) görüntüleme modu, iki sayfalı bir-bir-bir-bir-bir-bir-bir-saat (kitap okuma biçimi) görüntüleme modu ve sürekli kaydırma (bottomless) görüntüleme modu dahil çeşitli görüntüleme modları arasında dinamik olarak seçim olanağı sağlayan özellikler içerir. Bu görüntüleme modları hakkında daha fazla bilgi için bkz FlowDocumentReaderViewingMode .. Farklı görüntüleme modları arasında dinamik olarak geçiş yapma FlowDocumentPageViewer ve FlowDocumentScrollViewer belirli bir görüntüleme modunda düzeltilen daha hafif akış içerik görüntüleyicileri sağlama olanağına sahip olmanız gerekmiyorsa.

FlowDocumentPageViewer ve FlowDocumentScrollViewer

FlowDocumentPageViewer tek seferlik görüntüleme modundaki içeriği gösterir, ancak FlowDocumentScrollViewer içeriği sürekli kaydırma modunda gösterir. Her ikisi de FlowDocumentPageViewer FlowDocumentScrollViewer belirli bir görüntüleme moduna sabitlenmiştir. İle karşılaştırın FlowDocumentReader , kullanıcının çeşitli görüntüleme modları arasında (numaralandırma tarafından sağlandığı gibi FlowDocumentReaderViewingMode ), veya ' den daha fazla kaynak kullanımına sahip olan maliyetten dinamik olarak seçmesini sağlayan özellikler içerir FlowDocumentPageViewer FlowDocumentScrollViewer .

Varsayılan olarak, dikey bir kaydırma çubuğu her zaman gösterilir ve gerekirse yatay kaydırma çubuğu görünür hale gelir. İçin varsayılan Kullanıcı arabirimi FlowDocumentScrollViewer bir araç çubuğu içermez; ancak, IsToolBarVisible özelliği yerleşik bir araç çubuğunu etkinleştirmek için kullanılabilir.

Kullanıcı arabirimindeki metin

Belgelere metin eklemenin yanı sıra metin, form gibi uygulama kullanıcı arabiriminde da kullanılabilir. WPF ekrana metin çizme için birden çok denetim içerir. Her denetim farklı bir senaryoya yöneliktir ve kendi özellik ve kısıtlama listesine sahiptir. Genel olarak, TextBlock öğesinde kısa bir cümle gibi sınırlı metin desteği gerektiğinde öğesi kullanılmalıdır kullanıcı arabirimi (UI) . Label en az metin desteği gerekli olduğunda kullanılabilir. Daha fazla bilgi için bkz. TextBlock Overview.

Belge paketleme

System.IO.PackagingAPI 'ler, uygulama verilerini, belge içeriğini ve ilgili kaynakları kolay erişimli, taşınabilir ve dağıtımı kolay tek bir kapsayıcıda düzenlemek için etkili bir yol sağlar. ZIP dosyası, Package birden çok nesneyi tek bir birim olarak tutan bir tür örneğidir. Paketleme API 'Leri, ZipPackage XML ve ZIP dosya mimarisiyle açık bir paketleme kuralları standardı kullanılarak tasarlanan varsayılan bir uygulama sağlar. WPFPaketleme API 'leri, paketlerin oluşturulmasını ve bunların içindeki nesneleri depolamayı ve bunlara erişmeyi kolaylaştırır. İçinde depolanan bir nesne Package , PackagePart ("Part") olarak adlandırılır. Paketler ayrıca bir bölümün kaynağını belirlemek ve bir paketin içeriğinin değiştirilmediğini doğrulamak için kullanılabilecek imzalı dijital sertifikalar içerebilir. Paketler ayrıca PackageRelationship , var olan parçaların içeriğini değiştirmeden, ek bilgilerin bir pakete eklenmesine veya belirli bölümlerle ilişkilendirilmesine izin veren bir özelliği içerir. Paket Hizmetleri Microsoft Windows Rights Management (RM) da destekler.

WPFPaket mimarisi, bir dizi anahtar teknolojisinin temeli olarak görev yapar:

  • XML Kağıt Belirtimi (XPS) ile uyumlu XPS belgeleri.

  • "12" açık XML biçimli belgeleri (. docx) Microsoft Office.

  • Kendi uygulama tasarımınız için özel depolama biçimleri.

Paketleme API 'Lerine bağlı olarak, XpsDocument sabit içerik belgelerinin depolanması için özel olarak tasarlanmıştır WPF . , Bir XpsDocument görüntüleyicide açılabilen, bir denetimde görüntülenen, bir DocumentViewer yazdırma kuyruğu 'na yönlendirilen veya doğrudan XPS uyumlu bir yazıcıya giden bir yazıcıda açılan bir otomatik olarak kapsanan belgedir.

Aşağıdaki bölümler, Package XpsDocument ile birlikte sunulan ve API 'ler hakkında ek bilgiler sağlar WPF .

Paket bileşenleri

WPFPaketleme API 'leri, uygulama verilerinin ve belgelerinin tek bir taşınabilir birimde düzenlenmesine izin verir. ZIP dosyası, en yaygın paket türlerinden biridir ve, ile birlikte sunulan varsayılan paket türüdür WPF . Package , ZipPackage Open standart XML ve ZIP dosya mimarisi kullanılarak uygulanan bir soyut sınıftır. OpenYöntemi, ZipPackage Varsayılan olarak ZIP dosyalarını oluşturmak ve kullanmak için kullanır. Bir paket, üç temel öğe türü içerebilir:

PackagePart Uygulama içeriği, veriler, belgeler ve kaynak dosyaları.
PackageDigitalSignature Tanımlama, kimlik doğrulama ve doğrulama için [X. 509.440 sertifikası].
PackageRelationship Paketle veya belirli bir bölümden ilgili bilgiler eklendi.

PackageParts

A PackagePart ("Part"), içinde depolanan bir nesneye başvuran bir soyut sınıftır Package . Bir ZIP dosyasında, paket parçaları ZIP dosyası içinde depolanan bireysel dosyalara karşılık gelir. ZipPackagePart , içinde depolanan serileştirilebilir nesneler için varsayılan uygulamayı sağlar ZipPackage . Dosya sistemi gibi, pakette bulunan parçalar hiyerarşik dizinde veya "klasör stili" kuruluşta depolanır. WPFUygulamalar paketleme API 'lerini kullanarak PackagePart tek bir ZIP dosya kapsayıcısı kullanarak birden çok nesneyi yazabilir, saklayabilir ve okuyabilir.

Packagedigitalimzalarının

Güvenlik için bir PackageDigitalSignature ("dijital imza") bir paket içindeki bölümlerle ilişkilendirilebilir. , PackageDigitalSignature İki özellik sağlayan bir [509] içerir:

  1. Bölümünün kaynağını belirtir ve kimliğini doğrular.

  2. Bölümün değiştirilmediğini doğrular.

Dijital imza bir parçanın değiştirilmesini engellemez, ancak bölüm herhangi bir şekilde değiştirilirse dijital imzaya yönelik bir doğrulama denetimi başarısız olur. Uygulama daha sonra uygun eylemi gerçekleştirebilir — Örneğin, bölümü açmayı engelleme veya kullanıcıya parçanın değiştirildiğini ve güvenli olduğunu bildirme.

Packagerelationsevk

A PackageRelationship ("ilişki"), ek bilgileri paketle veya paket içindeki bir bölümüyle ilişkilendirmek için bir mekanizma sağlar. İlişki, gerçek bölüm içeriğini değiştirmeden ek bilgileri bir bölümüyle ilişkilendirebileceğiniz bir paket düzeyi tesisdir. ' In bölüm içeriğine doğrudan yeni veri eklemek genellikle pek çok durumda pratik değildir:

  • Bölümün gerçek türü ve içerik şeması bilinmiyor.

  • Bilinen bir deyişle, içerik şeması yeni bilgi eklemek için bir yol sunmayabilir.

  • Bölüm dijital olarak imzalanmış veya şifrelenmiş olabilir ve herhangi bir değişikliği daha fazla halledir.

Paket ilişkileri, farklı bölümlerle veya tüm paket ile ek bilgi ekleme ve ilişkilendirme için bulunabilir bir yol sağlar. Paket ilişkileri iki birincil işlev için kullanılır:

  1. Bir bölümden başka bir bölüme bağımlılık ilişkileri tanımlama.

  2. Bölüm ile ilgili notları veya diğer verileri ekleyen bilgi ilişkilerini tanımlama.

PackageRelationship, Bağımlılıkları tanımlamak ve paketin veya paketin bir bölümüyle ilişkili diğer bilgileri bir bütün olarak eklemek için hızlı, keşfedilebilir bir yol sağlar.

Bağımlılık Ilişkileri

Bağımlılık ilişkileri, bir bölümün diğer bölümlere yaptığı bağımlılıkları tanımlamakta kullanılır. Örneğin, bir pakette bir veya daha fazla resim etiketi içeren bir HTML bölümü bulunabilir <img> . Görüntü etiketleri, paketin iç veya paketin dışında (Internet üzerinden erişilebilen gibi) diğer parçalar olarak bulunan görüntülere başvurur. PackageRelationshipHTML dosyası ile ilişkili bir oluşturma, bağımlı kaynaklara hızlı ve kolay bir şekilde keşfve erişimi kolaylaştırır. Tarayıcı veya görüntüleyici uygulaması, Bölüm ilişkilerine doğrudan erişebilir ve şemayı bilmeden veya belgeyi ayrıştırmadan bağımlı kaynakları oluşturmaya hemen başlayabilir.

Bilgi Ilişkileri

Bir not veya ek açıklamasına benzer şekilde, PackageRelationship bölüm içeriğinin kendisini değiştirmek zorunda kalmadan bir bölüm ile ilişkilendirilecek diğer bilgi türlerini depolamak için de kullanılabilir.

XPS belgeleri

XML Kağıt Belirtimi (XPS) belgesi, işleme için gereken tüm kaynakları ve bilgileri içeren bir veya daha fazla sabit belge içeren bir pakettir. XPS ayrıca yerel Windows Vista yazdırma biriktirme dosyası biçimidir. , XpsDocument Standart ZIP veri kümesinde depolanır ve resim ve yazı tipi dosyaları gibi BIR XML ve ikili bileşen bileşimleri içerebilir. Packagerelationsevk edilen içerik ve belgeyi tam olarak işlemek için gereken kaynaklar arasındaki bağımlılıkları tanımlamak için kullanılır. XpsDocumentTasarım, birden çok kullanımı destekleyen tek ve yüksek uygunlukta bir belge çözümü sağlar:

  • Tek, taşınabilir ve dağıtımı kolay bir dosya olarak düzeltilen belge içeriğini ve kaynakları okuma, yazma ve depolama.

  • XPS Görüntüleyici uygulamasıyla belge görüntüleme.

  • Windows Vista 'nın yerel yazdırma kuyruğu çıkış biçiminde belge çıktısı.

  • Belgeleri doğrudan XPS uyumlu bir yazıcıya yönlendirme.

Ayrıca bkz.