Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Informazioni su come personalizzare l'interfaccia utente dell'app quando si visualizza o si nasconde la tastiera virtuale.
API importanti
La tastiera touch in modalità layout predefinita
La tastiera touch permette l'inserimento di testo per i dispositivi che supportano il tocco. I controlli di input di testo dell'app di Windows richiamano la tastiera touch per impostazione predefinita quando un utente tocca un campo di input modificabile. La tastiera touch rimane in genere visibile mentre l'utente si sposta tra i controlli in una maschera, ma questo comportamento può variare in base agli altri tipi di controllo all'interno della stessa maschera.
Per supportare il comportamento della tastiera virtuale corrispondente in un controllo di input di testo personalizzato che non deriva da un controllo di input di testo standard, è necessario utilizzare la classe AutomationPeer per esporre i controlli all'automazione dell'interfaccia utente di Microsoft e implementare correttamente i modelli di controllo dell'automazione dell'interfaccia utente. Per ulteriori informazioni, consulta accessibilità della tastiera e peer di automazione personalizzati.
Dopo aver aggiunto questo supporto al controllo personalizzato, è possibile rispondere in modo appropriato alla presenza della tastiera touch.
Prerequisiti:
Questo argomento si basa sulle interazioni con la tastiera .
È necessario avere una conoscenza di base delle interazioni standard della tastiera, della gestione dell'input e degli eventi della tastiera e dell'automazione interfaccia utente.
Se sei nuovo nello sviluppo di app per Windows, dai un'occhiata a questi argomenti per familiarizzarti con le tecnologie discusse qui.
- Creare la prima app
- Scopri gli eventi con Eventi e una panoramica sugli eventi instradati
Linee guida per l'esperienza utente:
Per suggerimenti utili sulla progettazione di un'app utile e coinvolgente ottimizzata per l'input da tastiera, vedi Interazioni tramite tastiera .
Tastiera virtuale e interfaccia utente personalizzata
Ecco alcuni consigli di base per i controlli di input di testo personalizzati.
Visualizzare la tastiera touch durante tutto il tempo di interazione con il modulo.
Assicurarsi che i controlli personalizzati dispongano dell'appropriato tipo di controllo dell'automazione dell'interfaccia utente AutomationControlType affinché la tastiera rimanga attiva quando lo stato attivo si sposta da un campo di input di testo nel contesto dell'immissione del testo. Ad esempio, se si dispone di un menu aperto al centro di uno scenario di immissione di testo e si vuole che la tastiera venga mantenuta, il menu deve avere il AutomationControlType di Menu.
Non modificare le proprietà di UI Automation per controllare la tastiera tattile. Altri strumenti di accessibilità si basano sull'accuratezza delle proprietà di automazione interfaccia utente.
Assicurarsi che gli utenti possano sempre visualizzare il campo di input con cui interagiscono.
Poiché la tastiera virtuale occulta una grande porzione dello schermo, Windows garantisce che il campo di input con il focus venga portato in visualizzazione mentre un utente naviga tra i controlli del modulo, inclusi i controlli che non sono attualmente visibili.
Quando si personalizza l'interfaccia utente, fornire un comportamento simile all'aspetto della tastiera virtuale gestendo l'
Mostra eNascondere gli eventi esposti dall'oggetto InputPane. In alcuni casi, ci sono elementi dell'interfaccia utente che devono rimanere sullo schermo per tutto il tempo. Progettare l'interfaccia utente in modo che i controlli del modulo siano contenuti in un'area di scorrimento e che gli elementi importanti dell'interfaccia utente siano statici. Per esempio:
Gestione degli eventi di visualizzazione e nascondimento
Di seguito è riportato un esempio di collegamento dei gestori di eventi per gli eventi Mostrare e Nascondere della tastiera touch.
using Windows.UI.ViewManagement;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.Foundation;
using Windows.UI.Xaml.Navigation;
namespace SDKTemplate
{
/// <summary>
/// Sample page to subscribe show/hide event of Touch Keyboard.
/// </summary>
public sealed partial class Scenario2_ShowHideEvents : Page
{
public Scenario2_ShowHideEvents()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
InputPane currentInputPane = InputPane.GetForCurrentView();
// Subscribe to Showing/Hiding events
currentInputPane.Showing += OnShowing;
currentInputPane.Hiding += OnHiding;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
InputPane currentInputPane = InputPane.GetForCurrentView();
// Unsubscribe from Showing/Hiding events
currentInputPane.Showing -= OnShowing;
currentInputPane.Hiding -= OnHiding;
}
void OnShowing(InputPane sender, InputPaneVisibilityEventArgs e)
{
LastInputPaneEventRun.Text = "Showing";
}
void OnHiding(InputPane sender, InputPaneVisibilityEventArgs e)
{
LastInputPaneEventRun.Text = "Hiding";
}
}
}
...
#include <winrt/Windows.UI.ViewManagement.h>
...
private:
winrt::event_token m_showingEventToken;
winrt::event_token m_hidingEventToken;
...
Scenario2_ShowHideEvents::Scenario2_ShowHideEvents()
{
InitializeComponent();
}
void Scenario2_ShowHideEvents::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
{
auto inputPane{ Windows::UI::ViewManagement::InputPane::GetForCurrentView() };
// Subscribe to Showing/Hiding events
m_showingEventToken = inputPane.Showing({ this, &Scenario2_ShowHideEvents::OnShowing });
m_hidingEventToken = inputPane.Hiding({ this, &Scenario2_ShowHideEvents::OnHiding });
}
void Scenario2_ShowHideEvents::OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
{
auto inputPane{ Windows::UI::ViewManagement::InputPane::GetForCurrentView() };
// Unsubscribe from Showing/Hiding events
inputPane.Showing(m_showingEventToken);
inputPane.Hiding(m_hidingEventToken);
}
void Scenario2_ShowHideEvents::OnShowing(Windows::UI::ViewManagement::InputPane const& /*sender*/, Windows::UI::ViewManagement::InputPaneVisibilityEventArgs const& /*args*/)
{
LastInputPaneEventRun().Text(L"Showing");
}
void Scenario2_ShowHideEvents::OnHiding(Windows::UI::ViewManagement::InputPane const& /*sender*/, Windows::UI::ViewManagement::InputPaneVisibilityEventArgs const& /*args*/)
{
LastInputPaneEventRun().Text(L"Hiding");
}
#include "pch.h"
#include "Scenario2_ShowHideEvents.xaml.h"
using namespace SDKTemplate;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::UI::ViewManagement;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
Scenario2_ShowHideEvents::Scenario2_ShowHideEvents()
{
InitializeComponent();
}
void Scenario2_ShowHideEvents::OnNavigatedTo(NavigationEventArgs^ e)
{
auto inputPane = InputPane::GetForCurrentView();
// Subscribe to Showing/Hiding events
showingEventToken = inputPane->Showing +=
ref new TypedEventHandler<InputPane^, InputPaneVisibilityEventArgs^>(this, &Scenario2_ShowHideEvents::OnShowing);
hidingEventToken = inputPane->Hiding +=
ref new TypedEventHandler<InputPane^, InputPaneVisibilityEventArgs^>(this, &Scenario2_ShowHideEvents::OnHiding);
}
void Scenario2_ShowHideEvents::OnNavigatedFrom(NavigationEventArgs^ e)
{
auto inputPane = Windows::UI::ViewManagement::InputPane::GetForCurrentView();
// Unsubscribe from Showing/Hiding events
inputPane->Showing -= showingEventToken;
inputPane->Hiding -= hidingEventToken;
}
void Scenario2_ShowHideEvents::OnShowing(InputPane^ /*sender*/, InputPaneVisibilityEventArgs^ /*args*/)
{
LastInputPaneEventRun->Text = L"Showing";
}
void Scenario2_ShowHideEvents::OnHiding(InputPane^ /*sender*/, InputPaneVisibilityEventArgs ^ /*args*/)
{
LastInputPaneEventRun->Text = L"Hiding";
}
Articoli correlati
- Interazioni tramite tastiera
- accessibilità tramite tastiera
- Componenti di automazione personalizzati