Snackbar
Makale 03/29/2024
5 katılımcı
Geri Bildirim
Bu makalede
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.