WPF'deki Belgeler
Windows Presentation Foundation (WPF), Windows'un önceki nesillerine göre daha kolay erişilecek ve okunacak şekilde tasarlanmış yüksek kaliteli içerik oluşturulmasını sağlayan çok çeşitli belge özellikleri sunar. WPF, gelişmiş özelliklere ve kaliteye ek olarak belge görüntüleme, paketleme ve güvenlik için tümleşik hizmetler de sağlar. Bu konu başlığında WPF belge türlerine ve belge paketlemeye giriş bilgileri sağlanmaktadır.
Belge Türleri
WPF, belgeleri amaçlanan kullanımları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 hassas bir "gördükleriniz elde ettiğiniz şey" (WYSIWYG) sunusu gerektiren uygulamalara yöneliktir. Sabit belgeler için tipik kullanımlar, özgün sayfa tasarımına bağlılığın kritik olduğu masaüstü yayımlama, sözcük işleme ve form düzenidir. Düzeninin bir parçası olarak, sabit bir belge kullanımdaki görüntü veya yazdırma cihazından bağımsız olarak içerik öğelerinin tam konumsal yerleşimini korur. Örneğin, 96 dpi ekranda görüntülenen sabit bir belge sayfası, 600 dpi lazer yazıcıya çıkış yapıldığında, 4800 dpi'lik bir fototipetter'a çıkış yapıldığında olduğu gibi tam olarak aynı görünür. Sayfa düzeni her durumda aynı kalırken, belge kalitesi her cihazın özelliklerine göre en üst düzeye çıkar.
Buna göre akış belgeleri görüntüleme ve okunabilirliği iyileştirmek için tasarlanmıştır ve okuma kolaylığı birincil belge tüketimi senaryosu olduğunda en iyi şekilde kullanılır. Akış belgeleri önceden tanımlanmış bir düzene ayarlamak yerine pencere boyutu, cihaz çözünürlüğü ve isteğe bağlı kullanıcı tercihleri gibi çalışma zamanı değişkenlerine göre içeriklerini dinamik olarak ayarlar ve yeniden akıtabilir. Web sayfası, sayfa içeriğinin geçerli pencereye sığacak şekilde dinamik olarak biçimlendirildiği basit bir akış belgesi örneğidir. Akış belgeleri, çalışma zamanı ortamına göre kullanıcı için görüntüleme ve okuma deneyimini iyileştirir. Örneğin, aynı akış belgesi yüksek çözünürlüklü 19 inç ekranda veya küçük bir 2x3 inç PDA ekranında en iyi okunabilirlik için dinamik olarak yeniden biçimlendirilecektir. Buna ek olarak, akış belgeleri arama, okunabilirliği en iyi duruma getiren görüntüleme modları ve yazı tiplerinin boyutunu ve görünümünü değiştirme gibi birçok yerleşik özelliğe sahiptir. Akış belgeleriyle ilgili çizimler, örnekler ve ayrıntılı bilgiler için bkz . Akış Belgesine Genel Bakış .
Belge Denetimleri ve Metin Düzeni
.NET Framework, uygulamanız içinde sabit belgeleri, akış belgelerini ve genel metinleri kullanmayı basitleştiren önceden oluşturulmuş bir dizi denetim sağlar. Sabit belge içeriğinin görüntülenmesi denetimi kullanılarak DocumentViewer desteklenir. Akış belgesi içeriğinin görüntülenmesi üç farklı denetim tarafından desteklenir: FlowDocumentReader, FlowDocumentPageViewerve FlowDocumentScrollViewer farklı kullanıcı senaryolarıyla eşlenen denetimler (aşağıdaki bölümlere bakın). Diğer WPF denetimleri, genel metin kullanımlarını desteklemek için basitleştirilmiş düzen sağlar (aşağıdaki Kullanıcı Arabirimindeki Metin bölümüne bakın).
Düzeltildi Belge Denetimi - DocumentViewer
Denetim DocumentViewer , içeriği görüntülemek FixedDocument için tasarlanmıştır. Denetim, yazdırma çıktısı DocumentViewer , panoya kopyalama, yakınlaştırma ve metin arama özellikleri gibi yaygın işlemler için yerleşik destek sağlayan sezgisel bir kullanıcı arabirimi sağlar. Denetim, tanıdık bir kaydırma mekanizması aracılığıyla içerik sayfalarına erişim sağlar. Tüm WPF denetimleri gibi, DocumentViewer tam veya kısmi restyling'i destekler ve bu da denetimin neredeyse tüm uygulama veya ortamlara görsel olarak tümleştirilmesini sağlar.
DocumentViewer içeriği salt okunur bir şekilde görüntülemek üzere tasarlanmıştır; içeriği düzenleme veya değiştirme kullanılamaz ve desteklenmez.
Akış Belgesi Denetimleri
Dekont
Akış belgesi özellikleri ve bunların nasıl oluşturulduğu hakkında daha ayrıntılı bilgi için bkz . Akış Belgesine Genel Bakış.
Akış belgesi içeriğinin görüntülenmesi üç denetim tarafından desteklenir: FlowDocumentReader, FlowDocumentPageViewer, ve FlowDocumentScrollViewer.
FlowDocumentReader
FlowDocumentReader kullanıcının tek sayfalı (bir kerede sayfa) görüntüleme modu, bir kerede iki sayfalık (kitap okuma biçimi) görüntüleme modu ve sürekli kaydırma (altsız) görüntüleme modu gibi çeşitli görüntüleme modları arasında dinamik olarak seçim yapmasını 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ı FlowDocumentPageViewer arasında dinamik olarak geçiş yapma yeteneğine ihtiyacınız yoksa ve FlowDocumentScrollViewer belirli bir görüntüleme modunda sabitlenmiş daha hafif akış içerik görüntüleyicileri sağlayın.
FlowDocumentPageViewer ve FlowDocumentScrollViewer
FlowDocumentPageViewer içeriği bir kerede sayfa görüntüleme modunda, içeriği ise FlowDocumentScrollViewer sürekli kaydırma modunda gösterir. FlowDocumentScrollViewer Hem hem de FlowDocumentPageViewer belirli bir görüntüleme moduna sabitlenir. FlowDocumentReaderveya değerinden daha yoğun FlowDocumentPageViewerFlowDocumentScrollViewerkaynak kullanımlı olması karşılığında kullanıcının çeşitli görüntüleme modları (numaralandırma tarafından FlowDocumentReaderViewingMode sağlandığı gibi) arasında dinamik olarak seçim yapmasını sağlayan özellikler içeren ile karşılaştırın.
Varsayılan olarak, dikey kaydırma çubuğu her zaman gösterilir ve gerekirse yatay kaydırma çubuğu görünür hale gelir. için FlowDocumentScrollViewer varsayılan kullanıcı arabirimi araç çubuğu içermez; ancak özelliği yerleşik IsToolBarVisible bir araç çubuğunu etkinleştirmek için kullanılabilir.
Kullanıcı Arabirimindeki Metin
Belgelere metin eklemenin yanı sıra, metin formlar gibi uygulama kullanıcı arabiriminde de kullanılabilir. WPF, ekrana metin çizmek için birden çok denetim içerir. Her denetim farklı bir senaryoya hedeflenmiştir ve kendi özellik ve sınırlama listesine sahiptir. Genel olarak, kullanıcı arabirimindeki TextBlock (UI) kısa bir cümle gibi sınırlı metin desteği gerektiğinde öğesi kullanılmalıdır. Label en az metin desteği gerektiğinde kullanılabilir. Daha fazla bilgi için bkz . TextBlock'a Genel Bakış.
Belge Paketleme
API'ler System.IO.Packaging uygulama verilerini, belge içeriğini ve ilgili kaynakları kolayca erişilebilen, taşınabilir ve dağıtımı kolay tek bir kapsayıcıda düzenlemek için verimli bir yöntem sağlar. ZIP dosyası, birden çok nesneyi tek bir birim olarak tutabilen bir Package tür örneğidir. Paketleme API'leri, XML ve ZIP dosya mimarisi ile Open Packaging Conventions standardı kullanılarak tasarlanmış varsayılan ZipPackage bir uygulama sağlar. WPF paketleme API'leri paketleri oluşturmayı ve içindeki nesneleri depolamayı ve bunlara erişmeyi basit hale getirir. içinde depolanan bir Package nesneye ("parça") denir PackagePart . Paketler, bir parçanın kaynağını belirlemek ve paketin içeriğinin değiştirilmediğini doğrulamak için kullanılabilecek imzalı dijital sertifikalar da içerebilir. Paketler ayrıca, mevcut parçaların içeriğini değiştirmeden pakete ek bilgilerin eklenmesine veya belirli parçalarla ilişkilendirilmesine olanak tanıyan bir özellik içerir PackageRelationship . Paket hizmetleri, Microsoft Windows Rights Management'ı (RM) da destekler.
WPF Paketi mimarisi, bir dizi temel teknoloji için temel görevi görür:
XML Kağıt Belirtimine (XPS) uygun XPS belgeleri.
Microsoft Office "12", XML biçimindeki belgeleri (.docx) açar.
Kendi uygulama tasarımınız için özel depolama biçimleri.
paketleme API'lerine bağlı olarak, XpsDocument wpf sabit içerik belgelerini depolamak için özel olarak tasarlanmıştır. , XpsDocument görüntüleyicide açilebilen, denetimde DocumentViewer görüntülenebilen, yazdırma havuzuna yönlendirilebilen veya doğrudan XPS uyumlu bir yazıcıya çıktı verilebilen, bağımsız bir belgedir.
Aşağıdaki bölümlerde WPF ile sağlanan ve XpsDocument API'leri hakkında Package ek bilgiler sağlanır.
Paket Bileşenleri
WPF paketleme API'leri, uygulama verilerinin ve belgelerinin tek bir taşınabilir ünitede düzenlenmesini sağlar. ZIP dosyası en yaygın paket türlerinden biridir ve WPF ile sağlanan varsayılan paket türüdür. Package kendisi, açık standart XML ve ZIP dosya mimarisi kullanılarak uygulanan soyut bir sınıftır ZipPackage . yöntemi varsayılan Open olarak ZIP dosyaları oluşturmak ve kullanmak için kullanır ZipPackage . Bir paket üç temel öğe türü içerebilir:
Öğe | Tanım |
---|---|
PackagePart | Uygulama içeriği, veriler, belgeler ve kaynak dosyaları. |
PackageDigitalSignature | Tanımlama, kimlik doğrulaması ve doğrulama için [X.509 Sertifikası]. |
PackageRelationship | Paketle veya belirli bir parçayla ilgili bilgiler eklendi. |
Paket Parçaları
(" PackagePart bölüm"), içinde depolanan bir nesneye başvuran soyut bir Packagesınıftır. Bir ZIP dosyasında, paket bölümleri ZIP dosyasında depolanan tek tek dosyalara karşılık gelir. ZipPackagePart , içinde ZipPackagedepolanan serileştirilebilir nesneler için varsayılan uygulamayı sağlar. Dosya sistemi gibi, pakette yer alan bölümler de hiyerarşik dizinde veya "klasör stili" kuruluşta depolanır. WPF paketleme API'lerini kullanarak uygulamalar tek bir ZIP dosyası kapsayıcısı kullanarak birden çok PackagePart nesne yazabilir, depolayabilir ve okuyabilir.
PackageDigitalSignatures
Güvenlik için bir PackageDigitalSignature ("dijital imza") bir paket içindeki parçalarla ilişkilendirilebilir. A PackageDigitalSignature , iki özellik sağlayan bir [509] içerir:
Bölümün kaynağını tanımlar ve kimliğini doğrular.
Bölümün değiştirilmediğini doğrular.
Dijital imza, bir bölümün değiştirilmesini engeller, ancak parça herhangi bir şekilde değiştirilirse dijital imzaya karşı doğrulama denetimi başarısız olur. Uygulama daha sonra uygun eylemi gerçekleştirebilir; örneğin, bölümün açılmasını engelleyebilir veya kullanıcıya parçanın değiştirildiğini ve güvenli olmadığını bildirebilir.
PackageRelationships
(" PackageRelationship ilişki"), ek bilgileri paketle veya paket içindeki bir parçayla ilişkilendirmeye yönelik bir mekanizma sağlar. İlişki, gerçek parça içeriğini değiştirmeden ek bilgileri bir parçayla ilişkilendirebilen paket düzeyinde bir tesistir. Yeni verilerin doğrudan bölüm içeriğine eklenmesi çoğu durumda pratik değildir:
Parçanın gerçek türü ve içerik şeması bilinmiyor.
Biliniyor olsa bile, içerik şeması yeni bilgi eklemek için bir araç sağlamayabilir.
Bölüm dijital olarak imzalanmış veya şifrelenmiş olabilir ve bu da herhangi bir değişikliği engelleyebilir.
Paket ilişkileri, tek tek parçalar veya paketin tamamıyla ek bilgi eklemek ve ilişkilendirmek için bulunabilir bir araç sağlar. Paket ilişkileri iki birincil işlev için kullanılır:
Bağımlılık ilişkilerini bir bölümden diğerine tanımlama.
Bölümle ilgili notlar veya diğer verileri ekleyen bilgi ilişkilerini tanımlama.
A PackageRelationship , bağımlılıkları tanımlamak ve paketin veya paketin bir parçasıyla ilişkili diğer bilgileri bir bütün olarak eklemek için hızlı, bulunabilir bir araç sağlar.
Bağımlılık İlişkileri
Bağımlılık ilişkileri, bir bölümün diğer bölümlere yaptığı bağımlılıkları açıklamak için kullanılır. Örneğin, bir pakette bir veya daha fazla <anlık> görüntü etiketi içeren bir HTML bölümü olabilir. Görüntü etiketleri, paketin içindeki veya dışındaki diğer parçalar olarak (İnternet üzerinden erişilebilir gibi) bulunan görüntülere başvurur. HTML dosyasıyla ilişkilendirilmiş bir PackageRelationship dosya oluşturmak, bağımlı kaynakları bulmayı ve bunlara erişmeyi hızlı ve kolay hale getirir. Tarayıcı veya görüntüleyici uygulaması parça ilişkilerine doğrudan erişebilir ve şemayı bilmeden veya belgeyi ayrıştırmadan bağımlı kaynakları hemen derlemeye başlayabilir.
Bilgi İlişkileri
Nota veya ek açıklamaya benzer şekilde, PackageRelationship parça içeriğinin kendisini değiştirmek zorunda kalmadan bir parçayla ilişkilendirilecek diğer bilgi türlerini depolamak için de kullanılabilir.
XPS Belgeleri
XML Kağıt Belirtimi (XPS) belgesi, bir veya daha fazla sabit belgenin yanı sıra işleme için gereken tüm kaynakları ve bilgileri içeren bir pakettir. XPS ayrıca yerel Windows Vista yazdırma havuzu dosya biçimidir. , XpsDocument standart ZIP veri kümesinde depolanır ve XML ile görüntü ve yazı tipi dosyaları gibi ikili bileşenlerin bir bileşimini içerebilir. PackageRelationships , belgeyi tam olarak işlemek için gereken içerik ve kaynaklar arasındaki bağımlılıkları tanımlamak için kullanılır. Tasarım XpsDocument , birden çok kullanım desteği sunan tek ve yüksek uygunlukta bir belge çözümü sağlar:
Sabit belge içeriğini ve kaynaklarını tek, taşınabilir ve dağıtımı kolay bir dosya olarak okuma, yazma ve depolama.
XPS Görüntüleyicisi uygulamasıyla belgeleri görüntüleme.
Windows Vista'nın yerel yazdırma biriktiricisi çıkış biçiminde belge çıktısı oluşturma.
Belgeleri doğrudan XPS uyumlu bir yazıcıya yönlendirme.
Ayrıca bkz.
.NET Desktop feedback