Обновление: Мы все еще используем XP на работе, и мое решение работает, но теперь, зная, что Vista и более поздние версии имеют изолированную сессию, я собираюсь реализовать WCF IPC ...
У меня есть служба Windows, которая должна уведомлять пользователя о событии какого-либо типа. Я решил, что что-то похожее на уведомления по электронной почте будет иметь смысл. Также имеет смысл сделать такой простой пользовательский интерфейс с использованием WPF. Это позволило бы мне изучить некоторые основы.
Я запускаю тему:
Thread thread = new Thread(new ThreadStart(RunUserNotificationOnIndependantThread));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
Затем я настраиваю объект и вызываю метод, который вызывает DoubleAnimation.BeginAnimation
private void RunUserNotificationOnIndependantThread()
{
UserNotificationWithImage test = new UserNotificationWithImage();
test.Title = _title;
test.Url = _url;
test.Message = _message;
test.LoadUserNotification();
}
public void LoadUserNotification()
{
Rect workAreaRectangle = System.Windows.SystemParameters.WorkArea;
Left = workAreaRectangle.Right - Width - BorderThickness.Right;
Top = workAreaRectangle.Bottom - Height - BorderThickness.Bottom;
_fadeInAnimation.Completed += new EventHandler(_fadeInAnimation_Completed);
// Start the fade in animation
BeginAnimation(UserNotificationBase.OpacityProperty, _fadeInAnimation);
}
Отладчик достигает BeginAnimation (...), и окно не появляется. Это вообще возможно или что я делаю неправильно, пытаясь это сделать?
Код UserNotification основан на блоге Никке Андерссон: Блог WPF Desktop Alert
Спасибо за любую помощь !!