首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到全屏上点击Xamarin ffimageloading插件

到全屏上点击Xamarin ffimageloading插件
EN

Stack Overflow用户
提问于 2017-12-07 00:50:12
回答 1查看 2.8K关注 0票数 1

下面的代码使用图像处理组件呈现高度为200 an的图像。我需要点击这个图像,并显示在一个全屏或放大它。它是否适用于图像处理,还是我需要通过每个平台(android和ios)来实现它?

视图

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"
             x:Class="Namespace.Views.MyClass">

<Grid Padding="0"
                  Margin="0"
                  BackgroundColor="{StaticResource BackgroundColor}">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="200" />
                    </Grid.RowDefinitions>

                    <ffimageloading:CachedImage 
                        Grid.Row="0"
                        Source="{Binding ThumbPath}"
                        Aspect="AspectFill">
                        <ffimageloading:CachedImage.LoadingPlaceholder>
                            <OnPlatform   
                            x:TypeArguments="ImageSource"
                            iOS="logo_header"
                            Android="logo_header" />
                        </ffimageloading:CachedImage.LoadingPlaceholder>
                        <ffimageloading:CachedImage.ErrorPlaceholder>
                            <OnPlatform   
                            x:TypeArguments="ImageSource"
                            iOS="noimage"
                            Android="noimage" />
                        </ffimageloading:CachedImage.ErrorPlaceholder>
                    </ffimageloading:CachedImage>
                </Grid>
</ContentPage>

ViewModel (使用ViewModel)

代码语言:javascript
复制
public class MyClassViewModel : BindableBase, INavigationAware
{
   public MyClassViewModel()
   {
   }

    private string _thumbPath;

    public PerfilPetDto ThumbPath
    {
        get
        {
            return "https://www.google.com.br/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
        }
        set
        {
            _thumbPath = value;
            RaisePropertyChanged(nameof(ThumbPath));
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-07 01:48:57

要做的第一件事是向缓存的图像添加一个手势识别器。

代码语言:javascript
复制
<ffimageloading:CachedImage.GestureRecognizers>
    <TapGestureRecognizer Command="{Binding ViewImageCommand}" />
</ffimageloading:CachedImage.GestureRecognizers>

这使用了与视图模型中的命令绑定的命令。

代码语言:javascript
复制
private Command _viewImageCommand;
public Command ViewImageCommand => _viewImageCommand ?? (_viewImageCommand = new Command(async () => await ViewImage()));

private async Task ViewImage()
{
    await CoreMethods.PushPageModel<FullScreenImagePageModel>(imageName, false);
}

这将推动另一个页面将图像显示为全屏。

我使用FreshMvvm将图像的名称传递给全屏图像视图模型。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47685879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档