時々表示される WPF アプリケーションにウィンドウがあります。表示中はアニメーションとともにフェードインし、閉じるとフェードアウトします。不透明度を変更するストーリーボードだけです。実際には、ウィンドウが実際に閉じられることはありません。不透明度は 0 にフェードアウトされ、再び表示されるまで残ります。
このウィンドウは情報ウィンドウであり、常に同じ内容が表示されるわけではありません。コンテンツ (幅と高さ) に合わせてサイズ設定されており、その点でうまく機能します。ユーザーは、表示する画面の基本領域 (TopLeft、TopRight、Center、BottomLeft、BottomRight) を選択します。
ウィンドウがフェード インする前に、コンテンツが更新されます。ウィンドウはコンテンツに合わせてサイズ変更されるため、サイズが増減します。幅と高さは変更できます。
たとえば、ウィンドウを右下隅に配置するときは、画面の WorkingArea (幅と高さ) を取り、ウィンドウの幅/高さを引いて、必要な上と左の位置を取得します。
ロジックは機能しますが、私が抱えている問題は、コンテンツが更新された後のウィンドウの高さと幅がサイズを返さず、最後に表示されたときのサイズを返すことです。これは、新しいコンテンツでまだレンダリングされていないためだと思います。
ウィンドウが前回よりも大きくなり、明らかに画面からはみ出している場合、これは私を悲しませます。
ウィンドウを OnContentRendered イベントに配置しようとしましたが、不透明度が 0 に設定されている場合、コンテンツが更新された後ではなく、ウィンドウが作成されたときに 1 回だけ発生します。
フェードインする前に、このウィンドウの正確な幅と高さを取得する方法を知っている人はいますか?
どんな助けでも大歓迎です!!