私はOut-of-Browser(OOB)Silverlightアプリケーションをシステムトレイの右下に移動しようとしています。アプリのサイズは160x100になります。Silverlight OOBウィンドウをデスクトップの右下に配置するにはどうすればよいですか?
私はちょうど画面の下部に十分に近づけない。 「トップ」プロパティを特定の値より上に設定した瞬間、それは無視されます。私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!
}
}
値はウィンドウスタイル=「デフォルト」のための602、または640より大きいより大きい場合App.Current.MainWindow.Topは無視される設定ウィンドウスタイル= '境界線なし'の場合。
「Top」の値を603以上に設定した場合、プロジェクト設定(私の場合は50)のブラウザ外設定ダイアログで指定されている先頭にサイレント設定されます。例外はスローされません。
'Left'プロパティではこの問題は発生していないようです。ウィンドウを画面の右側に移動するには、Leftを設定します。
私はWindows XP SP3とSilverlight 4.0/VS2010を使用しています。私は、 'ブラウザの外で実行しているときに昇格された信頼を要求する'チェックボックスをチェックしました。
画面を画面上でさらに下に移動できない理由は何ですか?
ウィンドウが画面の右下に「ドッキング」されているように見える他の方法はありますか?
ありがとうございます!
更新: 私が言及している必要があります。
- を私は「アウトオブブラウザ設定」ダイアログで「手動でウィンドウの位置を設定する」ボックスをチェックしています。ここでTop/Leftプロパティを設定すると(コードではなく)、結果は同じです:「Top」を640以上の値に設定すると(ウィンドウスタイル= '境界線なし')、ウィンドウは中央に配置されます指定された座標ではなく、デスクトップの
- 私のアプリでは、上/左をハードコードされた値に設定しているわけではありません。上のコードスニペットで問題を説明しています。実際のアプリでは、ユーザーにウィンドウを移動させてから、アプリが終了するとその位置を保存します。
- 私は画面/デスクトップのサイズを検出したいと思いますが、Silverlightでそれを行う方法が見つかりませんでした。
トライキャッチを使用します異なる画面解像度。 – ChrisF
ありがとう@ChrisF、私は言及すべきである(a)私はハード/私のアプリで左の値をハードコードしない、私は問題を説明するために上のコードスニペットでそれをした。 (b)画面/デスクトップのサイズを検出したいが、Silverlightでそれを行う方法が見つからなかった。 –
良い点。それは別の質問です;) – ChrisF