Snackbar
Článek 03/29/2024
Přispěvatelé: 5
Váš názor
V tomto článku
Ve Snackbar
výchozím nastavení se zobrazí časové upozornění, které se zobrazí v dolní části obrazovky. Zavře se po konfigurovatelné době. Snackbar
je plně přizpůsobitelná a lze ji ukotvit na libovolnou IView
.
Informuje Snackbar
uživatele o procesu, který aplikace provedla nebo provede. Zobrazí se dočasně v dolní části obrazovky.
Pro přístup k funkcím Snackbar
se vyžaduje následující nastavení specifické pro platformu.
Není vyžadováno žádné nastavení.
Není vyžadováno žádné nastavení.
Při použití Snackbar
je nezbytné provést následující dva kroky:
1. Povolení použití snackbaru s MauiAppBuilder
Při použití UseMauiCommunityToolkit
parametru options
k povolení použití snackbaru ve Windows následujícím způsobem:
var builder = MauiApp.CreateBuilder()
.UseMauiCommunityToolkit(options =>
{
options.SetShouldEnableSnackbarOnWindows(true);
})
Výše uvedené rutiny automaticky zaregistrují konfigurací událostí životního cyklu (OnLaunched
a OnClosed
).
2. Zahrnutí registrací toastNotification do souboru Package.appxmanifest
Pokud chcete zpracovat akce snackbaru, budete muset soubor upravit Platform\Windows\Package.appxmanifest
následujícím způsobem:
V souboru Package.appxmanifest přidejte do počáteční <Package>
značky následující obory názvů XML:
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
V souboru Package.appxmanifest , také v počáteční <Package>
značce, aktualizujte IgnorableNamespaces
na zahrnutí com
uap
rescap
adesktop
:
IgnorableNamespaces="uap rescap com desktop"
Příklad: Dokončená <Package>
značka
Tady je příklad dokončené počáteční <Package>
značky, která přidala podporu pro Snackbar
:
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
V souboru Package.appxmanifest přidejte do každé <Application>
značky následující rozšíření:
<Extensions>
<!-- Specify which CLSID to activate when notification is clicked -->
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<!-- Register COM CLSID -->
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
Příklad: Dokončená <Applications>
značka
Tady je příklad dokončené <Applications>
značky, která teď přidala podporu pro Snackbar
:
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
Příklad: Aktualizovaný Package.appxmanifest
soubor pro podporu Snackbar
Níže je příklad Package.appxmanifest
souboru, který byl aktualizován tak, aby podporoval ve Snackbar
Windows:
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
<Identity Name="maui-package-name-placeholder" Publisher="CN=Microsoft" Version="0.0.0.0" />
<Properties>
<DisplayName>$placeholder$</DisplayName>
<PublisherDisplayName>Microsoft</PublisherDisplayName>
<Logo>$placeholder$.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>
Další informace o zpracování aktivace: Odeslání místního informačního oznámení z aplikací jazyka C#
Není vyžadováno žádné nastavení.
Syntaxe
Vyvolá se pomocí jazyka Snackbar
C#.
C#
Pokud ho chcete zobrazit Snackbar
, musíte ho vytvořit pomocí statické metody Make
:
using CommunityToolkit.Maui.Alerts;
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
var snackbarOptions = new SnackbarOptions
{
BackgroundColor = Colors.Red,
TextColor = Colors.Green,
ActionButtonTextColor = Colors.Yellow,
CornerRadius = new CornerRadius(10),
Font = Font.SystemFontOfSize(14),
ActionButtonFont = Font.SystemFontOfSize(14),
CharacterSpacing = 0.5
};
string text = "This is a Snackbar";
string actionButtonText = "Click Here to Dismiss";
Action action = async () => await DisplayAlert("Snackbar ActionButton Tapped", "The user has tapped the Snackbar ActionButton", "OK");
TimeSpan duration = TimeSpan.FromSeconds(3);
var snackbar = Snackbar.Make(text, action, actionButtonText, duration, snackbarOptions);
await snackbar.Show(cancellationTokenSource.Token);
Při volání Snackbar.Make()
se vyžaduje jeho parametr string text
. Všechny ostatní parametry jsou volitelné.
Následující snímek obrazovky ukazuje výsledný snackbar:
K dispozici je také rozšiřující metoda, která ukotví jakoukoli VisualElement
metoduSnackbar
:
await MyVisualElement.DisplaySnackbar("Snackbar is awesome. It is anchored to MyVisualElement");
Upozorňující
Snackbar
ve Windows nelze ukotvit VisualElement
a vždy se zobrazí jako výchozí oznámení systému Windows.
SnackBar
obsahuje dvě události:
public static event EventHandler Shown
public static event EventHandler Dismissed
Obsahuje také vlastnost public static bool IsShown { get; }
.
Snackbar.Shown += (s, e) => { Console.WriteLine(Snackbar.IsShown); };
Snackbar.Dismissed += (s, e) => { Console.WriteLine(Snackbar.IsShown); };
Vlastnosti
Vlastnost
Type
Popis
Text
string
Textová zpráva: Povinní účastníci
Akce
Action
Akce, která vyvolá tlačítko akce, klikněte na tlačítko akce.
ActionButtonText
string
Text tlačítka akce
Záložka
IView
Snackbar
kotva. Snackbar
zobrazí se poblíž tohoto zobrazení. Když null
se Snackbar
zobrazí v dolní části obrazovky.
Doba trvání
TimeSpan
Snackbar
trvání.
VisualOptions
SnackbarOptions
Snackbar
vizuální možnosti.
SnackbarOptions
Umožňuje SnackbarOptions
přizpůsobit výchozí Snackbar
styl.
Vlastnosti
Vlastnost
Type
Popis
Default value
Mezery mezi znaky
double
Mezery mezi znaky zprávy
0.0d
Písmo
Font
Písmo zprávy
Font.SystemFontOfSize(14)
TextColor
Color
Barva textu zprávy
Colors.Black
ActionButtonFont
Font
Písmo tlačítka akce
Font.SystemFontOfSize(14)
ActionButtonTextColor
Color
Barva textu tlačítka akce
Colors.Black
BackgroundColor
Color
Barva pozadí
Colors.LightGray
CornerRadius
CornerRadius
Poloměr rohu.
new CornerRadius(4, 4, 4, 4)
Metody
metoda
Popis
Zobrazit
Zobrazí požadovanou .Snackbar
Tím se zavře všechny aktuálně zobrazené Snackbar
Zrušit
Zavřete požadovanou Snackbar
žádost .
Poznámka:
Můžete zobrazit pouze 1 Snackbar
najednou. Pokud metodu Show
zavoláte podruhé, první Snackbar
se před zobrazením sekundy Snackbar
automaticky zavře.
Příklady
Příklad této funkce najdete v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód Snackbar
najdete v úložišti .NET MAUI Community Toolkit na GitHubu .