我有一个 Silverlight 5 OOB 应用程序。我想创建“吐司”。由于限制,我不想使用 NotificationWindows。
我尝试创建一个 S5 窗口并将其滑到屏幕上。[粗略,但这是一个开始。]如果我在主窗口中使用一个按钮来触发创建,另一个按钮来触发动画,它就可以工作。如果我将动画放入第一种方法中,则窗口只会出现,没有动画。有谁知道我怎样才能使这项工作。
要重新创建,请在 MainPage.xaml 的 Grid 中添加:
<Button Content="Show" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0"
Name="show" VerticalAlignment="Top" Width="75" Click="show_Click" />
<Button Content="Move" Height="23" HorizontalAlignment="Left" Margin="12,41,0,0"
Name="move" VerticalAlignment="Top" Width="75" Click="move_Click" />
在 MainPage.xaml.cs 中,添加:
private Window toastWindow;
private void show_Click(object sender, RoutedEventArgs e)
{
toastWindow = new Window();
toastWindow.Width = 280;
toastWindow.Height = 58;
toastWindow.Left = 975;
toastWindow.Top = 755;
toastWindow.WindowStyle = WindowStyle.None;
toastWindow.WindowState = WindowState.Normal;
toastWindow.Content = new Toast();
toastWindow.Show();
toastWindow.Activate();
//for (int i = 0; i < 20; i++)
//{
// toastWindow.Top = toastWindow.Top - 5;
// System.Threading.Thread.Sleep(25);
//}
}
private void move_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 20; i++)
{
toastWindow.Top = toastWindow.Top - 5;
System.Threading.Thread.Sleep(25);
}
}
您还需要一个名为 Toast 的用户控件(在 Toast.xaml 中),我在其中为 LayoutRoot Grid 提供了背景颜色,这样即使通过开始栏,其 Width="300" Height="100" 也很明显。
在 Silverlight 5 属性页面上,您需要启用在浏览器外运行的应用程序,并在浏览器外设置设置在浏览器外运行时需要提升信任。
如果您运行它并单击“显示”,您将看到“开始”栏/时钟区域后面的吐司。如果单击“移动”,它会向上滑动。如果您取消注释 show_Click 方法的末尾并再次运行它并单击 Show,它将出现在其最终位置而没有任何滑动。
有任何想法吗?
PS 最终,我希望能够在任何时候在屏幕上拥有多个具有独立寿命的“切片”。