通知ウィンドウを作成しようとしていますが、実行したときにこの不透明度のシフトが発生しない理由を理解するのに苦労しています。代わりに、ウィンドウは1秒間保持されてから、目に見える変化なしに閉じます。他の方法による他のすべての試みも失敗したので、それは私が見逃しているいくつかのプロパティであるに違いありません。助けてくれてありがとう!
public void RunForm(string error, MessageBoxIcon icon, int duration)
{
lblMessage.Text = error;
Icon i = ToSystemIcon(icon);
if (i != null)
{
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(i.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
imgIcon.Source = bs;
}
this.WindowStartupLocation = WindowStartupLocation.Manual;
this.Show();
this.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.RestoreBounds.Width - 20;
this.Top = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Bottom - this.RestoreBounds.Height - 20;
while (this.Opacity > 0)
{
this.Opacity -= 0.05;
Thread.Sleep(50);
}
this.Close();
}
<Window Width="225" Height="140" VerticalContentAlignment="Center" HorizontalAlignment="Center" ShowActivated="True" ShowInTaskbar="False"
ResizeMode="NoResize" Grid.IsSharedSizeScope="False" SizeToContent="Height" WindowStyle="None" BorderBrush="Gray"
BorderThickness="1.5" Background="White" Topmost="True" AllowsTransparency="True" Opacity="1">
<Grid Height="Auto" Name="grdNotificationBox" >
<Image Margin="12,12,0,0" Name="imgIcon" Stretch="Fill" HorizontalAlignment="Left" Width="32" Height="29" VerticalAlignment="Top" />
<TextBlock Name="lblMessage" TextWrapping="Wrap" Margin="57,11,17,11"></TextBlock>
</Grid>