Xamarin TranslateTo使用独立单位

时间:2017-10-06 04:19:27

标签: xamarin

"INSERT INTO iDump_Upvote (UPV_Username, UPV_SujetId, UPV_Vote) VALUES (:UPV_Username, :UPV_SujetId, :UPV_Vote) ON DUPLICATE KEY UPDATE UPV_Vote = CASE WHEN UPV_Vote = :UPV_Vote THEN 0 ELSE :UPV_Vote END"; 似乎使用与设备无关的单位。如何在这些相同的单位中获取当前屏幕的高度和宽度,以避免移出屏幕?

TranslateTo似乎给出像素。我的应用程序中Current.MainPage.Width/Height(来自添加泛手势识别器)似乎未定义。 App.ScreenWidth再次出现在像素中。

我希望自动移动图像而不将其从屏幕上发送出去。

1 个答案:

答案 0 :(得分:0)

Xamarin.Forms定义了自己的设备无关单元

  • iOS:160英寸单位
  • Android:160英寸单位
  • Windows Phone:假设240个单位

VisualElement类定义了两个名为Width和Height的属性,这些属性在这些与设备无关的单元中提供视图,布局和页面的渲染维度。

因此,对于Page子类,您可以监视其大小(以及何时更改方向,从而更改宽度/高度):

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

在Page的构造函数中应用事件:

SizeChanged += OnPageSizeChanged;