WPF material 设计 Snackbar 持续时间

WPF material design Snackbar duration

嘿,我想弄清楚如何为 ButchersBoy Material 在 Xaml 工具包中找到的设计工具包 here and here.

没有地方说明我是否可以使用持续时间,所以也许我只是在代码中查看它?某处必须有一个参数允许这样做吗?

我目前的代码是这样的(后面的代码):

items.Snackbar.MessageQueue.Enqueue("Wow, easy!")

和 XAML:

<materialDesign:Snackbar 
        HorizontalAlignment="Stretch" 
        MessageQueue="{materialDesign:MessageQueue}" 
        x:Name="Snackbar" 
        Grid.Row="1" 
        Grid.ColumnSpan="2" />

它确实有效并显示 "Wow, easy!" 但它消失得太快,所以这就是为什么我试图找到一种方法来对其进行持续时间。

SnackbarMessageQueue 具有以下构造函数:

public SnackbarMessageQueue(TimeSpan messageDuration)

所以可以在视图模型中创建消息队列,并赋值,如:

<materialDesign:Snackbar MessageQueue="{Binding MyCustomMessageQueue}" />

或者,使用隐藏代码,将您的控件命名为:

<materialDesign:Snackbar x:Name="MySnackbar" />

然后在代码隐藏中你可以分配一个新的 snackbar:

var myMessageQueue = new SnackbarMessageQueue(TimeSpan.FromMilliseconds(8000));
MySnackbar.MessageQueue = myMessageQueue;

将来我们可以将其添加到您的示例中使用的标记扩展中,请随时为此在 GitHub 上提出请求。

这是另一种为 Material Design In Xaml Toolkit 的 Snackbar 添加持续时间的方法。

XAML:

 <materialDesign:Snackbar 
                 IsActive="False" 
                 x:Name="SnackbarOne"  
                 MessageQueue="{materialDesign:MessageQueue}"/>

代码隐藏:

 SnackbarOne.MessageQueue?.Enqueue("Wow, easy!", null, null, null, false, true, TimeSpan.FromSeconds(3));