我正在尝试将一个Out-of-browser(OOB)Silverlight应用程序移动到系统托盘上方的右下角。该应用程序的大小为160x100。
我无法让它足够接近屏幕的底部。当我将“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!
}
}
如果Window Style ='Default'的值大于602,或者Window Style ='No Border'的值大于640,则忽略设置App.Current.MainWindow.Top。
如果我将'Top'值设置为603以上,它只是默认默认为Project设置中的Out-Of-Browser Settings对话框中指定的Top(在我的情况下为50)。没有例外。
'Left'属性似乎没有这个问题:我可以设置Left将窗口向右移动到屏幕的右侧。
我正在使用Windows XP SP3和Silverlight 4.0 / VS2010。我已经检查了“在浏览器外部运行时需要提升的信任”框。
为什么我无法在屏幕上进一步向下移动窗口?
有没有其他方法可以让我的窗口“停靠”在屏幕的右下角?
谢谢!
更新的 我应该提到:
答案 0 :(得分:1)
您需要设置WindowStartupLocation to Manual。
<OutOfBrowserSettings.WindowSettings>
<WindowSettings Title="Silverlight Application"
WindowStartupLocation="Manual"
Left="0"
Top="0"
Width="640"
Height="480"/>
</OutOfBrowserSettings.WindowSettings>
如果需要,您还可以通过代码访问OutOfBrowserSettings.WindowSettings
。
答案 1 :(得分:1)
试试这个:
Window w = App.Current.MainWindow;
w.Width = 1;
w.Height = 1;
w.Left = 1108;
w.Top = 603;
w.Width = 160;
w.Height = 100;
但请使用try catch