Я пытаюсь переместить приложение Silverlight вне браузера (OOB) в правый нижний угол над системным блоком. Размер приложения - 160х100.
Я просто не могу подойти достаточно близко к нижней части экрана. В тот момент, когда я устанавливаю свойство «Top» выше определенного значения, оно просто игнорируется.
Например, в моем App.xaml.cs:
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
if (App.Current.HasElevatedPermissions &&
App.Current.IsRunningOutOfBrowser)
{
Window w = App.Current.MainWindow;
w.Width = 160;
w.Height = 100;
w.Left = 1108;
// Up to this point the above all works ok.
w.Top = 603; // This is ignored if over 602!
}
}
Настройка App.Current.MainWindow.Top игнорируется, если значение больше 602 для стиля окна = «По умолчанию» или больше 640 для стиля окна = «Нет границы».
Если я установил значение «Top» выше 603, оно просто по умолчанию будет использовать значение «Top», указанное в диалоговом окне «Out-Of-Browser Settings» в настройках проекта (в моем случае 50). Исключение не выбрасывается.
Похоже, что свойство 'Left' не имеет этой проблемы: я могу установить Left, чтобы переместить окно вправо вверх по правой стороне экрана.
Я использую Windows XP SP3 и Silverlight 4.0 / VS2010. Я установил флажок «Требовать повышенное доверие при работе вне браузера».
Любая причина, почему я не могу переместить мое окно дальше вниз на экране?
Есть ли другой способ заставить мое окно казаться "пристыкованным" в правом нижнем углу экрана?
Спасибо!
Обновление:
Я должен был упомянуть:
- Я установил флажок «Задать местоположение окна вручную» в диалоговом окне «Настройки вне браузера». Устанавливая свойства Top / Left здесь (в отличие от кода), результат будет таким же: если я установлю для Top значение выше 640 (window style = 'No Border'), то окно будет посередине рабочего стола, а не по указанным координатам.
- На самом деле я не устанавливаю в верхнем / левом углу жестко заданные значения в своем приложении - я сделал это в приведенном выше фрагменте кода, чтобы проиллюстрировать проблему. В реальном приложении я позволяю пользователю перемещать окно, а затем сохраняю позицию при выходе из приложения.
- Я бы хотел определить размер экрана / рабочего стола, но не смог найти способ сделать это в Silverlight.