У меня есть приложение Silverlight 5 OOB. Я хочу приготовить тост. Я не хочу использовать NotificationWindows из-за ограничений.
Я пробовал создать окно S5 и вывести его на экран. [Грубо, но это только начало.] Если я использую одну кнопку в главном окне для запуска создания, а другую - для запуска анимации, это сработает. Если я помещу анимацию в первый метод, просто появится окно без анимации. Кто-нибудь знает, как я могу заставить эту работу.
Для воссоздания внутри сетки в MainPage.xaml добавьте:
<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);
}
}
Вам также понадобится UserControl под названием Toast (в Toast.xaml), в котором я дал LayoutRoot Grid цвет фона, чтобы он был очевиден даже через начальную панель с Width = "300" Height = "100".
На странице свойств Silverlight 5 вам потребуется включить запуск приложения из браузера, а в настройках вне браузера установить Требовать повышенного доверия при работе вне браузера.
Если вы запустите его и нажмете «Показать», вы увидите всплывающее сообщение за панелью / часами «Пуск». Если вы нажмете «Переместить», он сдвинется вверх. Если вы раскомментируете конец метода show_Click, запустите его снова и нажмите «Показать», он появится в своем окончательном положении без скольжения.
Любые идеи?
P.S. В конечном счете, я хочу иметь возможность одновременно отображать на экране несколько «фрагментов» с независимой продолжительностью жизни.