WPF材料设计Snackbar持续时间

时间:2017-01-02 20:15:24

标签: wpf vb.net xaml material-design-in-xaml

嘿所有我试图弄清楚如何在Xaml Toolkit中找到here和{{3}}的ButchersBoy材质设计附带的Snackbar的持续时间。

如果我可以使用持续时间,那么没有哪个状态,所以也许我只是在代码中查看它?必须有一个允许这个的参数?

我目前的代码就是这个(代码背后):

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

和XAML:

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

哪个有效并且显示&#34;哇,简单!&#34;但它消失得太快,所以这就是为什么我想找到一种方法对它进行持续时间。

2 个答案:

答案 0 :(得分:3)

SnackbarMessageQueue具有以下构造函数:

class A(namedtuple('B', 'c')):
    __slots__ = ()

因此,您可以在视图模型中创建消息队列,并分配,例如:

public SnackbarMessageQueue(TimeSpan messageDuration)

或者,使用后面的代码命名您的控件:

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

然后在代码隐藏中,您可以指定一个新的快餐栏:

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

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

答案 1 :(得分:0)

这是在 Xaml Toolkit 中为 Material Design 的 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));