Xamarin 表单中的图像缩放
Image zoom in Xamarin forms
我想实现 Xamarin 表单图像缩放 属性。我确实在互联网上搜索了一段时间,但没有找到任何相关文档,谁能提供一些有关如何在 Xamarin Forms 中实现它的信息?
目前没有图像缩放属性。您必须使用自定义渲染器来实现这一点。
尝试使用 ScaleTo,Itz 类似于缩放功能,但不完全是缩放功能。希望对您有所帮助...
var img = new Image {
Source = "foo.png",
Scale = .9
};
var stepper = new Stepper {
Minimum = .1,
Maximum = 1,
Increment = .1,
Value = .9,
};
stepper.ValueChanged += async (object sender, ValueChangedEventArgs e) => {
img.ScaleTo(e.NewValue);
};
我同样需要在 Xamarin Forms 的图像上实现缩放、单击...。
在论坛上我找到了一个为 3 个平台定义自定义渲染器的插件,它可以让你获得点击图像的坐标,然后实现你想要的缩放。
这里是插件的网址:http://www.mrgestures.com/
您开发的每个应用程序需要花费 10 欧元。根据您需要实施的内容以及您需要实施的次数,它并不昂贵。
问题与缩放 属性 有关,它缩放到 x 和 y 的中心,
我已经实现了这个扩展,不需要额外的渲染器。
public static Task<bool> ScaleTo(this VisualElement view, double scale, double anchorX, double anchorY, uint length = 250, Easing easing = null)
{
var tcs = new TaskCompletionSource<bool>();
if (easing == null)
{
easing = Easing.Linear;
}
new Animation(
(v) =>
{
view.Scale = scale;
view.AnchorX = anchorX;
view.AnchorY = anchorY;
}, 0, length
).Commit(view, nameof(view), 16, length, easing, finished: (f, a) => tcs.SetResult(a));
return tcs.Task;
}
您可以使用捏合手势识别器实现捏合缩放。
这是关于双指缩放的文档
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/pinch
同时如果要添加pan,可以结合上面的代码
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/pan
那么您将在 Xamarin.Forms
中拥有一个相当不错的全屏图像查看器
您可以使用这个 library,只需安装在您的 .netstandard 项目上即可!
然后您可以使用 Rg.Plugin.Popup 并通过提供 link
动态添加图像
xmlns:pinch="clr-namespace:Xamarin.Forms.PinchZoomImage;assembly=Xamarin.Forms.PinchZoomImage"
<pinch:PinchZoom.Content>
<Image Source="xxamarin.jpg" />
</pinch:PinchZoom.Content>
我想实现 Xamarin 表单图像缩放 属性。我确实在互联网上搜索了一段时间,但没有找到任何相关文档,谁能提供一些有关如何在 Xamarin Forms 中实现它的信息?
目前没有图像缩放属性。您必须使用自定义渲染器来实现这一点。 尝试使用 ScaleTo,Itz 类似于缩放功能,但不完全是缩放功能。希望对您有所帮助...
var img = new Image {
Source = "foo.png",
Scale = .9
};
var stepper = new Stepper {
Minimum = .1,
Maximum = 1,
Increment = .1,
Value = .9,
};
stepper.ValueChanged += async (object sender, ValueChangedEventArgs e) => {
img.ScaleTo(e.NewValue);
};
我同样需要在 Xamarin Forms 的图像上实现缩放、单击...。
在论坛上我找到了一个为 3 个平台定义自定义渲染器的插件,它可以让你获得点击图像的坐标,然后实现你想要的缩放。
这里是插件的网址:http://www.mrgestures.com/
您开发的每个应用程序需要花费 10 欧元。根据您需要实施的内容以及您需要实施的次数,它并不昂贵。
问题与缩放 属性 有关,它缩放到 x 和 y 的中心, 我已经实现了这个扩展,不需要额外的渲染器。
public static Task<bool> ScaleTo(this VisualElement view, double scale, double anchorX, double anchorY, uint length = 250, Easing easing = null)
{
var tcs = new TaskCompletionSource<bool>();
if (easing == null)
{
easing = Easing.Linear;
}
new Animation(
(v) =>
{
view.Scale = scale;
view.AnchorX = anchorX;
view.AnchorY = anchorY;
}, 0, length
).Commit(view, nameof(view), 16, length, easing, finished: (f, a) => tcs.SetResult(a));
return tcs.Task;
}
您可以使用捏合手势识别器实现捏合缩放。
这是关于双指缩放的文档 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/pinch
同时如果要添加pan,可以结合上面的代码 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/pan
那么您将在 Xamarin.Forms
中拥有一个相当不错的全屏图像查看器您可以使用这个 library,只需安装在您的 .netstandard 项目上即可!
然后您可以使用 Rg.Plugin.Popup 并通过提供 link
动态添加图像 xmlns:pinch="clr-namespace:Xamarin.Forms.PinchZoomImage;assembly=Xamarin.Forms.PinchZoomImage"
<pinch:PinchZoom.Content>
<Image Source="xxamarin.jpg" />
</pinch:PinchZoom.Content>