c# - Xamarin MR.Gestures 移动 ContentView
问题描述
我有个问题。我正在尝试使用 MR.Gestures 来移动我的 ContentView,所以我尝试了这个:
var draggableView = new MR.Gestures.ContentView { VerticalOptions =
LayoutOptions.FillAndExpand };
draggableView.Panning += (dd, ee) =>
{
if(ee.Touches != null)
{
if (ee.Touches.Length == 1)
{
draggableView.TranslationX = ee.Touches[0].X;
draggableView.TranslationY = ee.Touches[0].Y;
}
}
};
但这根本不会移动 ContentView。永远不会到达需要翻译的 2 行,所以ee.Touches
总是null
...
我究竟做错了什么?
解决方案
这是我使用它的唯一代码
也许您忘记将 设置contentview
为 Content。为了更好的表现,我设置了背景颜色。
您还需要更改 和 的TranslationX
值TranslationY
。它将使 contentvew 顺利移动。
改变:
draggableView.TranslationX = ee.Touches[0].X;
draggableView.TranslationY = ee.Touches[0].Y;
至:
draggableView.TranslationX += ee.DeltaDistance.X;
draggableView.TranslationY += ee.DeltaDistance.Y;
你可以试试下面的代码。
var draggableView = new MR.Gestures.ContentView
{
VerticalOptions = LayoutOptions.FillAndExpand,
BackgroundColor = Color.Accent
};
Content = draggableView;
draggableView.Panning += (dd, ee) =>
{
if (ee.Touches != null)
{
if (ee.Touches.Length == 1)
{
//draggableView.TranslationX = ee.Touches[0].X;
//draggableView.TranslationY = ee.Touches[0].Y;
draggableView.TranslationX += ee.DeltaDistance.X;
draggableView.TranslationY += ee.DeltaDistance.Y;
}
}
};
结果:
推荐阅读
- javascript - D3 x 轴日期标签显示为小数
- scala - 从响应标头中提取和编辑令牌 - Galing 和 Scala
- python - 将制表符分隔文件转换为 CSV
- annotations - Grafana:一次在多个面板上添加注释
- android - 在棒棒糖版本上方的通知中设置小图标
- python - 如何触发 Flask-SocketIO 服务器和 C# 客户端之间的回调函数?
- python - Python 中哪种类型的可迭代/列表能够在结构上共享以前可迭代/列表中的相同项目?
- c - 使用指向结构的指针时无法在 C 中获取空格后的单词
- django - 将 m2m,外键字段更新为模型在 DRF 中不起作用
- asp.net-core - 将日志文件存储在 ContentRoot 目录中是否安全