我設法創建了一個任務欄彈出窗口,就像使用Messenger的窗口一樣。 問題是,當它向下移動而不是消失在任務欄後面時,它就會落在它後面。C#&WPF - 任務欄彈出通知窗口問題
如何讓它消失在任務欄後面?不要忘記在Windows 7中,任務欄是透明的!
這裏是我的代碼:
public partial class WindowNotifier : Window
{
double xPos = 0;
double yPos = 0;
Timer closeTimer;
public WindowNotifier()
{
InitializeComponent();
closeTimer = new Timer();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SetValues();
closeTimer.Tick+=new EventHandler(closeTimer_Tick);
closeTimer.Start();
}
private void SetValues()
{
xPos = System.Windows.SystemParameters.WorkArea.Width;
yPos = System.Windows.SystemParameters.WorkArea.Height;
this.Left = xPos - this.Width;
this.Top = yPos - this.Height;
}
private void closeTimer_Tick(object sender, EventArgs e)
{
closeTimer.Interval = 50;
double curYPos = this.Top;
if (curYPos < yPos)
{
this.Top = curYPos + 8;
this.Opacity = this.Opacity - 0.050;
}
else
{
this.Close();
}
}
}
編輯: 我改變了計時器一部分,所以現在我降低了控制的高度和定位它。 現在的問題是,它閃爍。我該如何解決它?
下面是代碼:
closeTimer.Interval = 50;
double curYPos = this.Top;
int decAmount = 8;
if(this.Height - decAmount > 0)
{
this.Height = this.Height - decAmount;
this.Top = this.Top + decAmount;
this.Opacity = this.Opacity - 0.010;
}
else
{
this.Height = 0;
this.Close();
closeTimer.Stop();
}
當你在它的時候,一定要考慮到不同的任務欄位置和屏幕。我懷疑你最近的代碼可能會對最後一個代碼有一些意想不到的效果。就我個人而言,如果我的任務欄位於左側,右下方消失,我會發現它有點煩人。我希望它在左邊,然後消失在左邊。 – Stigma 2011-01-22 15:01:05