Aracılığıyla paylaş


SetFocus işlevi

Şunlar için geçerlidir: Tuval uygulamaları Model temelli uygulamalar

Giriş odağını belirli bir denetime taşır.

Description

SetFocus işlevi, giriş odağına bir denetim sağlar. Kullanıcının tuş vuruşları daha sonra bu denetim tarafından alınır ve bunları bir metin giriş denetimine yazmasına veya bir düğme seçmek için Enter tuşunu kullanmasına izin verir. Kullanıcı giriş odağını hareket ettirmek için Sekme tuşunu, dokunma özelliğini, fareyi veya başka bir hareketi kullanabilir. Sekme tuşu davranışı TabIndex özelliği tarafından yönetilir.

Aşağıdaki durumlarda odağı ayarlamak için SetFocus işlevini kullanın (her biri aşağıdaki örnekle birlikte):

  • yeni ortaya çıkan veya etkinleştirilmiş bir giriş denetimi olduğunda bir sonraki adıma kullanıcıyı yönlendirmek ve daha hızlı veri girişi için.
  • bir form doğrulandığında, hızlı çözüm için rahatsız edici giriş kontrolünü odaklamak ve görüntülemek üzere.
  • bir ekran görüntülendiğinde ilk giriş denetimini Ekran'ın OnVisible özelliği ile odaklamak için.

Odaklanmış denetim FocusedBorderColor ve FocusedBorderThickness özelliklerine göre görsel olarak farklı olabilir.

Sınırlamalar

SetFocus, yalnızca aşağıdakilerle birlikte kullanılabilir:

Odağı bir Gallery denetimi, Edit form denetimi veya Bileşen içindeki denetimlere ayarlayamazsınız. SetFocus, kaydırılabilir ekranda bir denetimle kullanılabilir.

Odağı, Container denetimi içindeki denetimlere ayarlayamazsınız .

Odağı yalnızca SetFocus çağrısını içeren formülle aynı ekrandaki denetimlere ayarlayabilirsiniz.

Odağı, DisplayMode özelliği Devre Dışı olarak ayarlanmış bir denetime ayarlamaya çalışmanın etkisi yoktur. Odak daha önce bulunduğu yerde kalacaktır.

Apple iOS'ta, yazılım klavyesi yalnızca SetFocus işlevi doğrudan bir kullanıcı eylemiyle başlatıldığında otomatik olarak görüntülenir. Örneğin yazılım klavyesi, bir düğmenin OnSelect özelliğinden çağrıldığında görüntülenirken bir ekranın OnVisible özelliğinden çağrıldığında görüntülenmez.

SetFocus işlevini yalnızca davranış formüllerinde kullanabilirsiniz.

Sözdizimi

SetFocus( Control )

  • Control – Gerekli. Giriş odağı sağlayan denetim.

Örnekler

Yeni ortaya çıkan veya etkinleştirilmiş giriş denetimine odaklanma

Çoğu alışveriş sepeti, müşterinin sevkiyat adresini faturala adresi olarak kullanmasına izin vererek aynı bilgileri iki kez girme ihtiyacını azaltır. Farklı bir faturala adresi isteniyorsa faturala adresi metin giriş kutuları etkinleştirilir ve daha hızlı veri girişi için müşteriyi bu yeni etkinleştirilmiş denetimlere yönlendirmek yararlı olur.

Özel bir Fatura adresi kullanmanın seçildiği, bunun sonucunda odağın Fatura adı giriş denetimine kaydığı ve Sevkiyat adresi ile otomatik eşitlemenin kapatıldığı animasyon.

Burada çok sayıda formül yürütülmektedir ancak odağı hareket ettiren formül Check box denetiminin OnUncheck özelliğindedir:

SetFocus( BillingName )

Sekme tuşu, odağı bir alandan diğerine hızlı bir şekilde taşımak için de kullanılabilir. Daha iyi açıklamak için animasyonda Sekme tuşu kullanılmamıştır.

Bu örneği oluşturmak için:

  1. Yeni bir uygulama oluşturun.
  2. "Sevkiyat adresi", "Ad:", "Adres:", "Faturala Adresi", "Ad:" ve "Adres:" metinleriyle Label denetimleri'ni ekleyin ve bunları animasyonda gösterildiği şekilde yerleştirin.
  3. Text input denetimi ekleyin ve ShippingName olarak yeniden adlandırın.
  4. Text input denetimi ekleyin ve ShippingAddress olarak yeniden adlandırın.
  5. Check box denetimi ekleyin ve SyncAddresses olarak yeniden adlandırın.
  6. Bu denetimin Text özelliğini "Use Shipping address as Billing address" formülüne ayarlayın.
  7. Text Input denetimi ekleyin ve BillingName olarak yeniden adlandırın.
  8. Bu denetimdeki Default özelliğini ShippingName formülüne ayarlayın.
  9. Bu denetimdeki DisplayMode özelliğini If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ) formülüne ayarlayın. Bu, check box denetiminin durumuna bağlı olarak bu denetimi otomatik olarak etkinleştirir veya devre dışı bırakır.
  10. Text input denetimi ekleyin ve BillingAddress olarak yeniden adlandırın.
  11. Bu denetimdeki Default özelliğini ShippingAddress formülüne ayarlayın.
  12. Bu denetimdeki DisplayMode özelliğini If( SyncAddresses.Value, DisplayMode.View, DisplayMode.Edit ) formülüne ayarlayın. Bu, check box denetiminin durumuna bağlı olarak bu denetimi otomatik olarak etkinleştirir veya devre dışı bırakır.
  13. Onay kutusunun Default özelliğini true formülüne ayarlayın. Bu, Faturala adresini Sevkiyat adresiyle aynı değeri kullanacak şekilde varsayılan olarak ayarlar.
  14. Bu onay kutusunun OnCheck özelliğini Reset( BillingName ); Reset( BillingAddress ) formülüne ayarlayın. Kullanıcı Sevkiyat ve Faturala adreslerini eşitlemeyi seçerse Faturala adresi alanlarındaki tüm kullanıcı girişlerini temizler ve her birinde Default özelliklerin ilgili Sevkiyat adresi alanlarından değerleri almasına izin verir.
  15. Bu onay kutusunun OnUncheck özelliğini SetFocus( BillingName ) formülüne ayarlayın. Kullanıcı, farklı bir faturala adresine sahip olmayı seçerse bu seçim, odağı Faturala adresindeki ilk denetime taşır. Denetimler, DisplayMode özellikleri nedeniyle zaten etkinleştirilmiş olur.

Doğrulama sorunlarına odaklanma

Not

Bu örnek, bir Edit form denetimi gibi görünse de ne yazık ki SetFocus henüz bu denetim tarafından desteklenmemektedir. Bunun yerine bu örnek, giriş denetimlerini barındırmak için kaydırılabilir bir ekran kullanır.

Bir formu doğrularken yalnızca sorun olduğunda bir ileti görüntülemek değil, aynı zamanda kullanıcıyı rahatsız edici alana götürmek de yararlı olabilir. Söz konusu alanın ekran dışına kaydırılması ve görünmemesi özellikle yararlı olabilir.

Veri giriş formunun doğrulanması ve yalnızca bir iletinin görüntülenmesi değil, aynı zamanda ekranın dışına kaydırılsa bile giriş odağını rahatsız edici giriş denetimine ayarlama animasyonu.

Bu animasyonda, tüm alanlar doğru şekilde dolduruluncaya kadar doğrulama düğmesine art arda basılır. Fare işaretçisinin ekranın üst kısmından aşağı hareket etmediğini unutmayın. Bunun yerine SetFocus işlevi, bu formülle giriş odağını dikkat edilmesi gereken denetime taşımıştır:

If( IsBlank( Name ),
        Notify( "Name requires a value", Error ); SetFocus( Name ),
    IsBlank( Street1 ),
        Notify( "Street Address 1 requires a value", Error ); SetFocus( Street1 ),
    IsBlank( Street2 ),
        Notify( "Street Address 2 requires a value", Error ); SetFocus( Street2 ),
    IsBlank( City ),
        Notify( "City requires a value", Error ); SetFocus( City ),
    IsBlank( County ),
        Notify( "County requires a value", Error ); SetFocus( County ),
    IsBlank( StateProvince ),
        Notify( "State or Province requires a value", Error ); SetFocus( StateProvince ),
    IsBlank( PostalCode ),
        Notify( "Postal Code requires a value", Error ); SetFocus( PostalCode ),
    IsBlank( Phone ),
        Notify( "Contact Phone requires a value", Error ); SetFocus( Phone ),
    Notify( "Form is Complete", Success )
)

Bu örneği oluşturmak için:

  1. Yeni, boş bir telefon uygulaması oluşturun.
  2. Ekle menüsünden Yeni ekran'ı ve ardından Kaydırılabilir'i seçin.
  3. Ekranın orta bölümüne Text input denetimlerini ekleyin ve bunları Ad, Cadde1, Cadde2, Şehir, Ülke, Eyalet, PostaKodu ve Telefon olarak adlandırın. Alanları tanımlamak için her birinin üstüne Label denetimleri ekleyin. Tüm denetimlere uyacak kadar uzun değilse bölümü yeniden boyutlandırmanız gerekebilir.
  4. Ekranın üst kısmına, kaydırılabilir bölümün üstüne bir onay işareti Icon denetimi ekleyin.
  5. Icon denetiminin OnSelect özelliğini yukarıda verilen If( IsBlank( ... formülüne ayarlayın.

Ekran görüntülerken odaklanma

Not

Bu örnek, bir Edit form denetimi gibi görünse de ne yazık ki SetFocus henüz bu denetim tarafından desteklenmemektedir. Bunun yerine bu örnek, giriş denetimlerini barındırmak için kaydırılabilir bir ekran kullanır.

Giriş denetimini görüntülemeye benzer şekilde, bir veri giriş ekranı görüntülenirken daha hızlı veri girişi için ilk giriş denetimine odaklanmak yararlı olur.

Veri girişi ekranı görüntülenirken SetFocus kullanmanın ve kullanmamanın yan yana karşılaştırmasını gösteren animasyon.

Bu animasyonda, soldaki veri girişi ekranı SetFocus kullanmıyor. Ekranda hiçbir giriş denetiminin odağı yokken kullanıcının bir değeri Ad alanının içine yazabilmesi için sekme tuşu, dokunma, fare veya başka bir yol kullanarak alana odaklanması gerekir.

Sağda, veri girişi ekranının aşağıda belirtilen formüle ayarlanmış OnVisible özelliğine sahip uygulamanın aynısı bulunmaktadır:

SetFocus( Name )

Bu, odağı otomatik olarak Ad alanına ayarlar. Kullanıcı, öncesinde başka eyleme ihtiyaç duymadan alanlar arasında yazmaya ve sekmeye hemen başlayabilir.

Bu örneği oluşturmak için:

  1. Yukarıda belirtilen "Doğrulama sorunlarına odaklanma" uygulamasını oluşturun.
  2. Bu ekranda, OnVisible özelliğini SetFocus( Name ) formülüne ayarlayın.
  3. İkinci bir ekran ekleyin.
  4. Button denetimi ekleyin.
  5. Bu denetimin OnSelect özelliğini Navigate( Screen1 ) formülüne ayarlayın.
  6. Uygulamayı bu ekrandan önizleyin. Düğmeye basın. OnVisible formülü değerlendirilir ve Ad alanına otomatik olarak odaklanılır.