2017-10-06 9 views
0

TranslateToはデバイスに依存しないユニットを使用しているようです。画面から離れないように、同じ単位で現在の画面の高さと幅を取得するにはどうすればよいですか?Xamarin TranslateToは独立したユニットを使用します

Current.MainPage.Width/Heightが表示されます。 App.ScreenWidth(パンジェスチャ認識機能の追加から)は私のアプリケーションでは未定義です。 this.Content.Widthが再度ピクセルで表示されます。

イメージを画面から送信せずに自動移動したいと考えています。

答えて

0

Xamarin.Forms

  • のiOS独自のデバイスに依存しない単位を定義していますインチ
  • のWindows Phoneに160単位:インチ
  • アンドロイドに160台240台
を想定

VisualElementクラスは、これらのデバイスに依存しない単位でレンダリングされたビュー、レイアウト、およびページの次元を提供するWidthとHeightという2つのプロパティを定義します。

SizeChanged += OnPageSizeChanged; 
+0

感謝:

void OnPageSizeChanged(object sender, EventArgs args) { System.Diagnostics.Debug.WriteLine("{Width}:{Height}"); } 

ページのコンストラクタでイベントを適用します。

のでPageサブクラスのためにあなたは、その大きさ(とときの向きが変化し、したがって、幅/高さの変更)を監視することができますあなたは返事をします。私は幅/高さから見ていた数字を誤解していました。これらはデバイスに依存しません。私の大きな問題は、TranslateToが実際にオブジェクトの "ベース"の位置を変更しないことを理解することでした。オブジェクトが開始と停止で画面を横切って移動するように見える場合、連続するTranslateToは累積する必要があります。再度、感謝します –

関連する問題