Lestip
Een lestip is een semi-persistente flyout met inhoudsrijke inhoud die contextuele informatie biedt. Het wordt vaak gebruikt voor het informeren, herinneren en onderwijzen van gebruikers over belangrijke en nieuwe functies die hun ervaring kunnen verbeteren.
Een lestip kan vanzelf verdwijnen of expliciete actie vereisen om te sluiten. Een onderwijstip kan gericht zijn op een specifiek UI-element met de staart en kan ook worden gebruikt zonder een staart of doel.
Is dit de juiste controle?
Gebruik een TeachingTip besturingselement om de aandacht van een gebruiker te vestigen op nieuwe of belangrijke updates en functies, een gebruiker te herinneren aan niet-essentiƫle opties die hun ervaring zouden verbeteren of om een gebruiker te leren hoe een taak moet worden voltooid.
Omdat onderwijstip tijdelijk is, is dit niet het aanbevolen besturingselement voor het vragen van gebruikers over fouten of belangrijke statuswijzigingen.
Aanbevelingen
- Tips zijn impermanent en mogen geen informatie of opties bevatten die essentieel zijn voor de ervaring van een toepassing.
- Probeer te voorkomen dat er te vaak lestips worden weergegeven. Onderwijstips krijgen waarschijnlijk afzonderlijke aandacht wanneer ze gedurende lange sessies of in meerdere sessies worden gespreid.
- Houd tips beknopt en hun onderwerp helder. Uit onderzoek blijkt dat gebruikers gemiddeld slechts 3-5 woorden lezen en alleen 2-3 woorden begrijpen voordat wordt bepaald of ze met een tip moeten werken.
- Gamepad-toegankelijkheid van een lestip is niet gegarandeerd. Zie gamepad- en afstandsbedieningsinteractiesvoor toepassingen die gamepadinvoer voorspellen. Het wordt aangeraden de gamepadtoegankelijkheid van elke onderwijstip te testen met behulp van alle mogelijke configuraties van de gebruikersinterface van een app.
- Wanneer u een lestip inschakelt om aan de xaml-wortel te ontsnappen, wordt u aangeraden ook de eigenschap IsLightDismissEnabled in te schakelen en de PreferredPlacement-modus in te stellen die zich het dichtst bij het midden van de xaml-wortel bevindt.
Een open onderwijstip opnieuw configureren
Sommige inhoud en eigenschappen kunnen opnieuw worden geconfigureerd terwijl de lestip open is en onmiddellijk van kracht wordt. Voor andere inhoud en eigenschappen, zoals de pictogrameigenschap, de knoppen Actie en Sluiten, en het herconfigureren tussen licht-verwijderen en expliciet verwijderen, moet de onderwijstip worden gesloten en opnieuw worden geopend om wijzigingen effectief te maken. Houd er rekening mee dat het wijzigen van sluitingsgedrag van handmatig sluiten naar licht-sluiten terwijl een lestip open is, ervoor zorgt dat de Sluiten-knop van de onderwijstip wordt verwijderd voordat het licht-sluitgedrag is ingeschakeld en de tip op het scherm kan blijven vastzitten.
Voorbeelden
Een onderwijstip kan verschillende configuraties hebben, waaronder deze belangrijke configuraties:
Een onderwijstip kan zich richten op een specifiek UI-element met de staart om de contextuele duidelijkheid van de informatie die wordt weergegeven, te verbeteren.
Wanneer de gepresenteerde informatie geen betrekking heeft op een bepaald UI-element, kan er een niet-gerichte instructietip worden gemaakt door de staart te verwijderen.
Een lestip kan vereisen dat de gebruiker deze wegklikt met een X-knop in een van de bovenhoeken of een knop Sluiten onderaan. Een onderwijstip kan ook met lichte afwijzing zijn ingeschakeld, in welk geval er geen sluitknop is en de onderwijstip in plaats daarvan wordt gesloten wanneer een gebruiker scrollt of met andere elementen van de applicatie interacteert. Vanwege dit gedrag zijn light-dismiss tips de beste oplossing wanneer een tip in een schuifbaar gebied moet worden geplaatst.
Een lestip maken
- Belangrijke API's:TeachingTip-klasse
De WinUI 3 Gallery app bevat interactieve voorbeelden van de meeste Besturingselementen, functies en functionaliteit van WinUI 3. Download de app uit de Microsoft Store of haal de broncode op GitHub-
Hier volgt de XAML voor een gerichte onderwijstip-besturingselement waarmee het standaard uiterlijk van de TeachingTip met een titel en subtitel wordt gedemonstreerd. Houd er rekening mee dat de lestip overal in de elementstructuur of in de achterliggende code kan worden weergegeven. In dit voorbeeld hieronder bevindt deze zich in een ResourceDictionary.
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Save automatically"
Subtitle="When you save your file to OneDrive, we save your changes as you go - so you never have to.">
</TeachingTip>
</Button.Resources>
</Button>
public MainPage()
{
this.InitializeComponent();
if(!HaveExplainedAutoSave())
{
AutoSaveTip.IsOpen = true;
SetHaveExplainedAutoSave();
}
}
Dit is het resultaat wanneer de pagina met de knop en lestip wordt weergegeven:
In het bovenstaande voorbeeld worden de eigenschappen Titel en Ondertitel gebruikt om de titel en subtitel van de lestip in te stellen. De eigenschap Target is ingesteld op 'SaveButton' om de visuele verbinding tussen zichzelf en de knop tot stand te brengen. Als u de lestip wilt weergeven, is de eigenschap IsOpen ingesteld op true
.
Algemene tips
Niet alle tips hebben betrekking op een element op het scherm. Stel voor deze scenario's geen doel in en de onderwijstip wordt in plaats daarvan ten opzichte van de randen van de xaml-wortel weergegeven. Een onderwijstip kan echter de staart laten verdwijnen terwijl de plaatsing van een UI-element behouden blijft door de eigenschap TailVisibility in te stellen op 'Ingeklapt'. Het volgende voorbeeld is van een niet-gerichte onderwijstip.
<Button x:Name="SaveButton" Content="Save" />
<TeachingTip x:Name="AutoSaveTip"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to.">
</TeachingTip>
In dit voorbeeld bevindt de TeachingTip zich in de elementstructuur in plaats van in een ResourceDictionary of achter de code. Dit heeft geen effect op gedrag; De TeachingTip wordt alleen weergegeven wanneer deze wordt geopend en neemt geen indelingsruimte in beslag.
Voorkeursplaatsing
Lestip bootst het plaatsingsgedrag van flyouts FlyoutPlacementMode na met de eigenschap PreferredPlacement. De standaardplaatsingsmodus probeert een gerichte onderwijstip boven het doel te plaatsen en een niet-gerichte onderwijstip onder aan de xaml-wortel. Net als bij Flyout wordt er automatisch een andere plaatsingsmodus gekozen als de voorkeursplaatsingsmodus geen ruimte biedt voor de weergave van de lestip.
Zie gamepad- en afstandsbedieningsinteractiesvoor toepassingen die gamepadinvoer voorspellen. Het wordt aangeraden de gamepadtoegankelijkheid van elke onderwijstip te testen met behulp van alle mogelijke configuraties van de gebruikersinterface van een app.
Een gerichte instructietip waarbij de PreferredPlacement is ingesteld op 'BottomLeft', verschijnt met de staart gecentreerd onderaan het doelgebied, terwijl het lichaam van de instructietip naar links is verschoven.
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
PreferredPlacement="BottomLeft">
</TeachingTip>
</Button.Resources>
</Button>
Een niet-gerichte onderwijstip met de PreferredPlacement ingesteld op 'BottomLeft' wordt weergegeven in de linkerbenedenhoek van de xaml-wortel.
<Button x:Name="SaveButton" Content="Save" />
<TeachingTip x:Name="AutoSaveTip"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
PreferredPlacement="BottomLeft">
</TeachingTip>
In het onderstaande diagram ziet u het resultaat van alle 13 PreferredPlacement-modi die kunnen worden ingesteld voor gerichte onderwijstips.
In het onderstaande diagram ziet u het resultaat van alle 13 PreferredPlacement-modi die kunnen worden ingesteld voor niet-gerichte onderwijstips.
Een plaatsingsmarge toevoegen
U kunt bepalen hoe ver een gerichte onderwijstip is gescheiden van het doel en hoe ver een niet-gerichte onderwijstip is gescheiden van de randen van de xaml-wortel met behulp van de eigenschap PlacementMargin. Net als Marginheeft PlacementMargin vier waarden( links, rechts, boven en onder), zodat alleen de relevante waarden worden gebruikt. PlacementMargin.Left is bijvoorbeeld van toepassing wanneer de tip links van het doel is of aan de linkerkant van de xaml-wortel.
In het volgende voorbeeld ziet u een niet-gerichte tip, waarbij de plaatsingsmarge links/boven/rechts/onder allemaal is ingesteld op 80.
<Button x:Name="SaveButton" Content="Save" />
<TeachingTip x:Name="AutoSaveTip"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
PreferredPlacement="BottomLeft"
PlacementMargin="80">
</TeachingTip>
Inhoud toevoegen
Inhoud kan worden toegevoegd aan een lestip met behulp van de eigenschap Content. Als er meer inhoud moet worden weergegeven dan wat de grootte van een lestip toestaat, wordt een schuifbalk automatisch ingeschakeld zodat een gebruiker door het inhoudsgebied kan schuiven.
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to.">
<StackPanel>
<CheckBox x:Name="HideTipsCheckBox" Content="Don't show tips at start up" IsChecked="{x:Bind HidingTips, Mode=TwoWay}" />
<TextBlock>You can change your tip preferences in <Hyperlink NavigateUri="app:/item/SettingsPage">Settings</Hyperlink> if you change your mind.</TextBlock>
</StackPanel>
</TeachingTip>
</Button.Resources>
</Button>
Knoppen toevoegen
Standaard wordt een "X"-knop om te sluiten naast de titel van een onderwijstip weergegeven. De knop Sluiten kan worden aangepast met de eigenschap CloseButtonContent, in welk geval de knop naar de onderkant van de lestip wordt verplaatst.
Opmerking: Er wordt geen knop Sluiten weergegeven op tips met lichte verwerping ingeschakeld
U kunt een aangepaste actieknop toevoegen door de eigenschap ActionButtonContent in te stellen (en eventueel de eigenschap ActionButtonCommand en de eigenschap ActionButtonCommandParameter).
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
ActionButtonContent="Disable"
ActionButtonCommand="{x:Bind DisableAutoSaveCommand}"
CloseButtonContent="Got it!">
<StackPanel>
<CheckBox x:Name="HideTipsCheckBox" Content="Don't show tips at start up" IsChecked="{x:Bind HidingTips, Mode=TwoWay}" />
<TextBlock>You can change your tip preferences in <Hyperlink NavigateUri="app:/item/SettingsPage">Settings</Hyperlink> if you change your mind.</TextBlock>
</StackPanel>
</TeachingTip>
</Button.Resources>
</Button>
nl-NL:
Hero-inhoud
Inhoud van rand tot rand kan aan een onderwijstip worden toegevoegd door de eigenschap HeroContent in te stellen. De locatie van hero-inhoud kan worden ingesteld op de boven- of onderkant van een lestip door de eigenschap HeroContentPlacement in te stellen.
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to.">
<TeachingTip.HeroContent>
<Image Source="Assets/cloud.png" />
</TeachingTip.HeroContent>
</TeachingTip>
</Button.Resources>
</Button>
Een pictogram toevoegen
Er kan een pictogram naast de titel en subtitel worden toegevoegd met behulp van de eigenschap IconSource. Aanbevolen pictogramgrootten zijn 16px, 24px en 32 pixels.
<Button x:Name="SaveButton" Content="Save">
<Button.Resources>
<TeachingTip x:Name="AutoSaveTip"
Target="{x:Bind SaveButton}"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
<TeachingTip.IconSource>
<SymbolIconSource Symbol="Save" />
</TeachingTip.IconSource>
</TeachingTip>
</Button.Resources>
</Button>
Licht afwijzen inschakelen
Light-dismiss-functionaliteit is standaard uitgeschakeld, maar kan worden ingeschakeld door de eigenschap IsLightDismissEnabled in te stellen, zodat een instructiebericht bijvoorbeeld wordt gesloten wanneer een gebruiker door de toepassing schuift of met andere elementen communiceert. Vanwege dit gedrag zijn light-dismiss tips de beste oplossing als een tip in een scrollbaar gebied moet komen te staan.
De knop Sluiten wordt automatisch verwijderd uit een licht-sluiten ingeschakelde onderwijstip om het gedrag van licht negeren voor gebruikers te identificeren.
<Button x:Name="SaveButton" Content="Save" />
<TeachingTip x:Name="AutoSaveTip"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
IsLightDismissEnabled="True">
</TeachingTip>
Ontsnappen aan de XAML-hoofdgrenzen
Vanaf Windows 10, versie 1903 (build 18362), kan een onderwijstip ontsnappen aan de grenzen van de XAML-hoofdmap en het scherm door de eigenschap ShouldConstrainToRootBounds in te stellen. Wanneer deze eigenschap is ingeschakeld, probeert een lestip niet binnen de grenzen van de XAML-hoofdmap of het scherm te blijven en blijft deze altijd in de ingestelde PreferredPlacement
modus. Het wordt aangeraden de eigenschap IsLightDismissEnabled
in te schakelen en de PreferredPlacement
-modus in te stellen die zich het dichtst bij het midden van de XAML-hoofdmap bevindt om de beste ervaring voor gebruikers te garanderen.
In eerdere versies van Windows wordt deze eigenschap genegeerd en blijft de onderwijstip altijd binnen de grenzen van de XAML-hoofdmap.
<Button x:Name="SaveButton" Content="Save" />
<TeachingTip x:Name="AutoSaveTip"
Title="Saving automatically"
Subtitle="We save your changes as you go - so you never have to."
PreferredPlacement="BottomRight"
PlacementMargin="-80,-50,0,0"
ShouldConstrainToRootBounds="False">
</TeachingTip>
Annuleren en uitstellen van sluiten
De sluiten gebeurtenis kan worden gebruikt om de sluiting van een lestip te annuleren en/of uit te stellen. Dit kan worden gebruikt om de lestip open te houden of tijd te bieden voor een actie of aangepaste animatie. Wanneer het sluiten van een lestip wordt geannuleerd, gaat IsOpen terug naar waar, maar blijft deze onwaar tijdens het uitstel. Een programmatische sluiting kan ook worden geannuleerd.
Notitie
Als er geen plaatsingsoptie zou toestaan dat een lestip volledig wordt weergegeven, zal de eventcyclus opnieuw doorlopen worden om af te dwingen dat het wordt gesloten, in plaats van weer te geven zonder een toegankelijke sluitknop. Als de app het afsluitende evenement annuleert, blijft de lestip mogelijk geopend zonder een toegankelijke knop Sluiten.
<TeachingTip x:Name="EnableNewSettingsTip"
Title="New ways to protect your privacy!"
Subtitle="Please close this tip and review our updated privacy policy and privacy settings."
Closing="OnTipClosing">
</TeachingTip>
private void OnTipClosing(muxc.TeachingTip sender, muxc.TeachingTipClosingEventArgs args)
{
if (args.Reason == muxc.TeachingTipCloseReason.CloseButton)
{
using(args.GetDeferral())
{
bool success = UpdateUserSettings(User thisUsersID);
if(!success)
{
// We were not able to update the settings!
// Don't close the tip and display the reason why.
args.Cancel = true;
ShowLastErrorMessage();
}
}
}
}
UWP en WinUI 2
Belangrijk
De informatie en voorbeelden in dit artikel zijn geoptimaliseerd voor apps die gebruikmaken van de Windows App SDK en WinUI 3, maar zijn algemeen van toepassing op UWP-apps die gebruikmaken van WinUI 2. Zie de UWP API-referentie voor platformspecifieke informatie en voorbeelden.
Deze sectie bevat informatie die u nodig hebt om het besturingselement te gebruiken in een UWP- of WinUI 2-app.
Voor de TeachingTip voor UWP-apps is WinUI 2 vereist. Zie WinUIvoor meer informatie, inclusief installatie-instructies. API's voor dit besturingselement bevinden zich in de Microsoft.UI.Xaml.Controls naamruimte.
- WinUI 2 API's:TeachingTip-klasse
- Open de App WinUI 2 Gallery en zie de TeachingTip in actie. De WinUI 2 Gallery app bevat interactieve voorbeelden van de meeste Besturingselementen, functies en functionaliteit van WinUI 2. Haal de app op uit de Microsoft Store of haal de broncode van GitHub.
Als u de code in dit artikel wilt gebruiken met WinUI 2, gebruikt u een alias in XAML (we gebruiken muxc
) om de API's van de Windows UI-bibliotheek weer te geven die zijn opgenomen in uw project. Zie Aan de slag met WinUI 2 voor meer informatie.
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
<muxc:TeachingTip />
Verwante artikelen
Windows developer