Snackbar
, varsayılan olarak ekranın en altında görünen zamanlanmış bir uyarıdır. Yapılandırılabilir bir süre sonra kapatılır. Snackbar
tamamen özelleştirilebilir ve herhangi bir IView
öğesine bağlanabilir.
kullanıcılara Snackbar
bir uygulamanın gerçekleştirdiğini veya gerçekleştireceğini bildirir. Ekranın alt kısmında geçici olarak görünür.
İşlevlere Snackbar
erişmek için aşağıdaki platforma özgü kurulum gereklidir.
Kullanırken Snackbar
aşağıdaki iki adımın gerçekleştirilmesi önemlidir:
1. MauiAppBuilder ile snackbar kullanımını etkinleştirin
Windows'ta UseMauiCommunityToolkit
snackbar kullanımını etkinleştirmek için parametresini kullanırken options
aşağıdaki gibi:
var builder = MauiApp.CreateBuilder()
.UseMauiCommunityToolkit(options =>
{
options.SetShouldEnableSnackbarOnWindows(true);
})
Yukarıdakiler, yaşam döngüsü olaylarını (OnLaunched
ve OnClosed
) yapılandırarak gerekli işleyicileri otomatik olarak kaydeder.
2. Package.appxmanifest dosyanıza ToastNotification kayıtlarını ekleyin
Snackbar eylemlerini işlemek için dosyayı aşağıdaki gibi değiştirmeniz Platform\Windows\Package.appxmanifest
gerekir:
- Package.appxmanifest dosyasındaki açılış
<Package>
etiketine aşağıdaki XML Ad Alanlarını ekleyin:
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
- Package.appxmanifest dosyasında, açılış
<Package>
etiketinde ve desktop
içerecek uap
rescap
com
şekilde güncelleştirinIgnorableNamespaces
:
IgnorableNamespaces="uap rescap com desktop"
Örnek: Tamamlandı <Package>
Etiketi
Aşağıda için destek Snackbar
eklenmiş tamamlanmış bir açma <Package>
etiketi örneği verilmiştir:
<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">
- Package.appxmanifest'te her
<Application>
etiketin içine aşağıdaki uzantıları ekleyin:
<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>
Örnek: Tamamlandı <Applications>
etiketi
Şimdi için Snackbar
destek ekleyen tamamlanmış <Applications>
bir etiket örneği aşağıda verilmiştir:
<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>
Örnek: Dosya Desteklenecek Şekilde Güncelleştirildi Package.appxmanifest
Snackbar
Aşağıda Windows'da desteklenecek Snackbar
şekilde güncelleştirilmiş örnek Package.appxmanifest
bir dosya verilmiştir:
<?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>
Etkinleştirmeyi işleme hakkında daha fazla bilgi için: C# uygulamalarından yerel bir bildirim gönderme
Sözdizimi
Snackbar
C# kullanılarak çağrılır.
C#
Görüntülemek Snackbar
için statik yöntemini Make
kullanarak oluşturmanız gerekir:
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);
çağrılırken Snackbar.Make()
parametresi string text
gereklidir. Diğer tüm parametreler isteğe bağlıdır.
Aşağıdaki ekran görüntüsünde, elde edilen Snackbar gösterilmektedir:
Ayrıca herhangi bir öğesine bağlanacak Snackbar
VisualElement
bir uzantı yöntemi de vardır:
await MyVisualElement.DisplaySnackbar("Snackbar is awesome. It is anchored to MyVisualElement");
Uyarı
Snackbar
windows'a VisualElement
bağlanamaz ve her zaman varsayılan Windows Bildirimi olarak görüntülenir.
SnackBar
iki olay içerir:
public static event EventHandler Shown
public static event EventHandler Dismissed
Ayrıca özelliğini public static bool IsShown { get; }
içerir.
Snackbar.Shown += (s, e) => { Console.WriteLine(Snackbar.IsShown); };
Snackbar.Dismissed += (s, e) => { Console.WriteLine(Snackbar.IsShown); };
Özellikler
Özellik |
Türü |
Açıklama |
Metin |
string |
Kısa mesaj. Required |
Eylem |
Action |
Eylemde çağrılacak eylem düğmesine tıklayın. |
ActionButtonText |
string |
Eylem düğmesi metni. |
Bağlayıcı |
IView |
Snackbar çıpa. Snackbar bu görünümün yakınında görünür. olduğunda null , Snackbar ekranın alt kısmında görüntülenir. |
Süre |
TimeSpan |
Snackbar süre. |
VisualOptions |
SnackbarOptions |
Snackbar görsel seçenekleri. |
SnackbarOptions
varsayılan SnackbarOptions
Snackbar
stili özelleştirmeye izin verir.
Özellikler
Özellik |
Türü |
Açıklama |
Default value |
CharacterSpacing |
double |
İleti karakter aralığı. |
0.0d |
Yazı tipi |
Font |
İleti yazı tipi. |
Font.SystemFontOfSize(14) |
TextColor |
Color |
İleti metin rengi. |
Colors.Black |
ActionButtonFont |
Font |
Eylem düğmesi yazı tipi. |
Font.SystemFontOfSize(14) |
ActionButtonTextColor |
Color |
Eylem düğmesi metin rengi. |
Colors.Black |
BackgroundColor |
Color |
Arka plan rengi. |
Colors.LightGray |
CornerRadius |
CornerRadius |
Köşe yarıçapı. |
new CornerRadius(4, 4, 4, 4) |
Yöntemler
Metot |
Açıklama |
Göster |
İstenen Snackbar öğesini görüntüleyin. Bu, şu anda görüntülenenleri kapatacaktır Snackbar |
At |
İstenen Snackbar öğesini kapat. |
Not
Aynı anda yalnızca 1 Snackbar
görüntüleyebilirsiniz. yöntemini ikinci kez çağırırsanızShow
, ikincisi gösterilmeden önce Snackbar
ilki Snackbar
otomatik olarak kapatılır.
Örnekler
Bu özelliğin bir örneğini .NET MAUI Community Toolkit Örnek Uygulaması'nda çalışır durumda bulabilirsiniz.
API
üzerinde için Snackbar
kaynak kodunu .NET MAUI Community Toolkit GitHub deposunda bulabilirsiniz.