Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
IItemContainerProvideruygulamak için yöntemlerle ilgili bilgiler de dahil olmak üzere kılavuzları ve kuralları açıklar. Öğe sanallaştırmayı desteklemek için ItemContainer denetim düzeni kullanılır.
Çok sayıda alt öğe içeren denetimler, öğeleri verimli bir şekilde yönetmek için sanallaştırmayı kullanabilir. Sanallaştırma ile denetim, belirli bir zamanda öğelerin yalnızca bir alt kümesi için bellekte tam bilgi tutar. Genellikle alt küme yalnızca şu anda kullanıcı tarafından görülebilen öğeleri içerir. Kalan sanallaştırılmış öğelerle ilgili tüm bilgiler depolamada tutulur ve belleğe yüklenir veya denetimin ihtiyaç duyduğundan( örneğin, yeni öğeler kullanıcı tarafından görünür hale geldikçe) gerçekleştirilir.
Örneğin, aşağıdaki diyagramda binlerce sanallaştırılmış öğe içeren bir liste kutusu gösterilmektedir. Denetim yalnızca şu anda görünür durumda olan alt öğeler için tam bilgileri koruduğundan, sağlayıcı Microsoft UI Otomasyonu öğelerini yalnızca 100—127 öğeleri için kullanıma açabilir.
Liste kutusundaki sanallaştırılmış ve sanallaştırılmamış öğeleri gösteren 
Yalnızca gerçekleştirilen (sanallaştırılmamış) öğeler UI Otomasyonu ağacında UI Otomasyonu öğeleri olarak tam olarak kullanılabilir olduğundan, sanallaştırma kullanan denetimler bir sınamayı temsil eder. Sanallaştırılmış öğeler ağaçta olmadığından, bunlar hakkındaki bilgiler kullanılamaz.
Sanallaştırılmış öğeler hakkında bilgi sağlamak için sağlayıcılar, IItemContainerProvider arabirimini kullanıma sunan ItemContainer denetim desenini uygular. FindItemByProperty yöntemi, Name, AutomationIdveya IsSelectedgibi belirli bir özelliğin değerine göre alt öğeleri bulur. Bir öğe sanallaştırılmışsa, FindItemByProperty öğe için bir UI Otomasyonu yer tutucu öğesi alır. Yer tutucu öğesi, yalnızca VirtualizedItem denetim desenini destekleyen IRawElementProviderSimple arabiriminin bir uygulamasıdır.
IVirtualizedItemProvider::Realize yöntemi, istemcinin sanallaştırılmış bir öğenin gerçekleştirilmesini istemesine olanak tanır ve böylece tüm gerekli özelliklerin ve desenlerin kullanılabilir olması için öğe için tam ui Otomasyonu öğesini kullanıma sunar.
ItemContainer denetim düzeninin birincil amacı sanallaştırılmış kapsayıcı senaryolarını desteklemek olsa da, kapsayıcının sanallaştırma kullanıp kullanmadığına bakılmaksızın alt öğeleri ada göre alan herhangi bir kapsayıcı tarafından uygulanabilir.
Bu konu aşağıdaki bölümleri içerir.
- Uygulama Yönergeleri ve Kuralları
- IItemContainerProvider için Gerekli Üyeleri
- İlgili konular
Uygulama Yönergeleri ve Kuralları
ItemContainer denetim desenini uygularken aşağıdaki yönergelere ve kurallara dikkat edin:
- Sanallaştırılmış öğeler içerebilen tüm denetimler ItemContainer denetim desenini desteklemelidir. Bir özellik değerine göre öğelerin alınmasını destekleyen tüm kapsayıcılar, kapsayıcının sanallaştırma kullanıp kullanmadığına bakılmaksızın bu düzeni destekleyebilir.
- Kapsayıcı sanallaştırıldığında, Selection, Tableve Grid gibi diğer denetim desenleri etkilenebilir. Örneğin, ISelectionProvider::GetSelection yöntemi yalnızca görünüm penceresi içindeki öğeleri veya yalnızca şu anda sanallaştırılmamış seçili öğeleri destekleyebilirsiniz.
- Kaydırma denetim düzeni sanallaştırmadan etkilenmemelidir.
- Sanallaştırılmış öğeler için kullanılabilir öğe sayısı veya dizin bilgisi yok. Sanallaştırılmış denetim, gerekirse bu bilgileri sağlamak için DescribedBy veya ItemStatus özelliğini kullanabilir.
- Denetim geliştiricileri, sanallaştırma kullanımından etkilenen tüm UI Otomasyonu özelliklerinin ve denetim desenlerinin ayrıntılarını belgelemeli ve yayımlamalıdır. ItemContainer ve VirtualizedItem denetim desenleri temel destek sunsa da bazı sanallaştırma davranışlarını desteklemeyebilir.
Aşağıdaki yönergeler ve gereksinimler IItemContainerProvider::FindItemByProperty yöntemi için geçerlidir.
- Microsoft, gerekmese de FindItemByPropertyName, AutomationIdve IsSelected özelliklerini desteklemesini kesinlikle önerir.
- FindItemByProperty eşleşen bir nesne bulmak için birden çok nesne arasında geçiş yapması gerekiyorsa yavaş olabilir.
- FindItemByProperty sırayla öğeleri bulmak için tekrar tekrar çağrılabilir. Her öğe yalnızca bir kez döndürülürse, öğeler herhangi bir sırada olabilir.
- FindItemByProperty, yalnızca UI Otomasyonu ağacının denetiminde veya içerik görünümünde görünen öğeleri bulmak için uygulanabilir. Kullanıcıya bir "öğenin" yalnızca bir bölümünü temsil eden birden çok öğenin alınmasını önlemek için yalnızca ham görünümde görünen öğeler atlanabilir.
- Arama ölçütleri sanallaştırılmış bir öğeyle eşleştiğinde, sağlayıcı VirtualizedItem denetim desenini destekleyen bir yer tutucu öğesi döndürebilir. Aşağıdaki yönergeler yer tutucu öğeler için geçerlidir:
- Sanallaştırılmış bir öğe için yer tutucu öğesinin alınması kullanıcı arabirimi değişikliklerine neden olmamalıdır.
- Yer tutucu öğesi diğer alt öğelerin eşlerinden biri olmalıdır (yapılandırılmış bir olay gereklidir).
- Mümkün olduğunda, sağlayıcı yer tutucu yerine tam otomasyon öğesi oluşturabilir.
- Arama ölçütleri sanallaştırılmamış bir öğeyle eşleştiğinde sağlayıcının yer tutucu değil gerçek öğeyi döndürmesi gerekir.
- Hiçbir öğe bulunamadığında, IItemContainerProvider::FindItemByPropertypFound parametresini NULL olarak ayarlamalı ve S_OKdöndürmelidir.
- propertyId parametresi 0 olduğunda, sağlayıcı pStartAftersonra sonraki öğeyi döndürmelidir.
- pStartAfter parametresi NULL ve propertyId 0 ise, sağlayıcı kapsayıcıdaki ilk öğeyi döndürmelidir.
- propertyId parametresi 0 olduğunda değer parametresi yoksayılır.
Aşağıdaki yönergeler ve gereksinimler, UI Otomasyonu ağacındaki sanallaştırılmış öğeler için yer tutucu öğeler için geçerlidir.
- Sağlayıcıların bir yer tutucu öğesi için daha fazla özellik ve denetim desenini desteklemesi teşvik edilir, ancak yalnızca virtualizedItem denetim deseni gereklidir.
- IItemContainerProvider::FindItemByProperty yeniden çağrıldığında sağlayıcı önceki bir yer tutucu öğesini geçersiz kılabilir. (İstemcinin yer tutucu öğesini gerçekleştirmesi gerekiyorsa, bunu hemen yapmalıdır; aksi takdirde, findItemByProperty yeniden çağrılırsa veya görünüm penceresi her nedenden dolayı değişirse öğe geçersiz kılınabilir.)
- Kaydırma veya yeniden boyutlandırma gibi kullanıcı arabirimi eylemleri, kapsayıcının görünüm görünümünün değişmesine ve yeni bir alt öğe kümesinin görünür olmasına neden olabilir. Bu durumda, daha önce alınan yer tutucu öğeleri UI Otomasyonu ağacında kullanılamayabilir.
- Sağlayıcı, kapsayıcı nesnesinin görünüm görünümünde ekranda bulunan kullanıcı arabirimi öğelerini sanallaştırmamalıdır.
IItemContainerProvider için Gerekli Üyeler
IItemContainerProvider arabirimini uygulamak için aşağıdaki yöntem gereklidir.
| Gerekli üyeler | Üye türü | Notlar |
|---|---|---|
| FindItemByProperty | Yöntem | Hiç kimse |
ItemContainer denetim deseninde ilişkili özellik veya olay yok.
İlgili konular