Silverlight 5 OOB アプリがあります。「トースト」を作りたい。制限があるため、NotificationWindows を使用したくありません。
S5 ウィンドウを作成して画面にスライドさせてみました。[粗雑ですが、それは始まりです。] メイン ウィンドウの 1 つのボタンを使用して作成をトリガーし、別のボタンを使用してアニメーションをトリガーすると、機能します。アニメーションを最初のメソッドに入れると、ウィンドウだけが表示され、アニメーションは表示されません。誰も私がこれを機能させる方法を知っていますか?
再作成するには、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.xaml 内の) Toast という名前の UserControl も必要です。ここでは、LayoutRoot Grid に背景色を指定して、Width="300" Height="100" でスタート バーからでもわかるようにします。
[Silverlight 5 のプロパティ] ページで、ブラウザー外でのアプリケーションの実行を有効にする必要があります。また、ブラウザー外の設定で、[ブラウザー外で実行する場合は昇格された信頼が必要] を設定する必要があります。
実行して [表示] をクリックすると、スタート バー/クロック領域の後ろにトーストが表示されます。[移動] をクリックすると、上にスライドします。show_Click メソッドの末尾のコメントを外して再度実行し、[表示] をクリックすると、スライドせずに最終的な位置に表示されます。
何か案は?
PS 最終的には、独立した寿命でいつでも複数の「スライス」を画面に表示できるようにしたいと考えています。