mvvmcross xamarin.forms PictureChooser

Posted

技术标签:

【中文标题】mvvmcross xamarin.forms PictureChooser【英文标题】: 【发布时间】:2021-11-27 01:14:17 【问题描述】:

我正在尝试使用 PictureChooser 插件开发照片应用程序。我看到该示例使用 Xamarin.ios。我搜索了插件使用 Xamarin.Forms 但找不到任何示例的示例。我了解标签、文本编辑器和按钮的绑定是如何工作的;但是,页面的图像控件和视图模型的 byte[] 的绑定让我很吃惊。

DAA.UI 项目:

在 CameraPage.XAML 中:

<Image x:Name="MyImage"
               Source="Binding Bytes, Converter=StaticResource InMemoryImage"
               Aspect="Fill"
               HeightRequest="OnPlatform iOS=300, android=250"
               WidthRequest="OnPlatform iOS=300, Android=250"
               HorizontalOptions="Center" />

在 App.XAML 中:

<?xml version="1.0" encoding="utf-8" ?>
<Application
    x:Class="DamageAssessmentApp.UI.App"
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:d="clr-namespace:MvvmCross.Forms;assembly=MvvmCross.Forms"
    xmlns:resources="clr-namespace:DAA.UI.Resources"
    xmlns:local="using:DAA.UI"
    xmlns:nativeValueConverters="using:DAA.UI.NativeValueConverters">
    <Application.Resources>

        <!--  Application resource dictionary  -->
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <resources:Colors />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
        <nativeValueConverters:NativeInMemoryImageValueConverter x:Key="InMemoryImage"/>
    </Application.Resources>
</Application>

值转换器文件:

using MvvmCross.Forms.Converters;
namespace DAA.UI.NativeValueConverters

    public class NativeInMemoryImageValueConverter : MvxNativeValueConverter<MvxInMemoryImageValueConverter>
    
    

编译器在值转换器文件中找不到MvxInMemoryImageValueConverter。

【问题讨论】:

一个不错的选择是 Xamarin 社区工具包Camera View。有一些可用的示例。或者 Media Picker 来自 Xamarin.Essentials 感谢您查看 Xamarin 社区工具包。 【参考方案1】:

如果您使用 MVVMCross,您应该找到一个适用于 Xamarin.Forms 的示例,在这种情况下,一个很好的起点是他们的 Github。

或者你必须在每个平台上实现它并使用 DependencyService 来获取实现

其他替代品

    Xamarin 社区工具包

相机应用程序的另一个替代方案是 Xamarin 社区工具包Camera View。在同一个链接中有一个例子。但在他们的Github 中有更多示例。这与 Xamarin.Forms 完全兼容,并带来了对 CameraView 的更多控制

    Xamarin.Essentials

Xamarin.Essentials 提供MediaPicker,让用户可以从图库中上传照片或拍摄新照片。但是照片的动作是由操作系统处理的,所以对你来说它就像一个黑匣子。您调用该函数,然后获取照片。

【讨论】:

Media Picker 的工作方式与 PictureChooser 类似,并且按照宣传的方式工作。

以上是关于mvvmcross xamarin.forms PictureChooser的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中

如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中

在 Xamarin.Forms MvvmCross 中存储视图

MvvmCross 与 Xamarin.Forms 和自定义 iOS 渲染器 - 防止导航滑动 iOS - MasterDetail

Xamarin Forms MvvM框架之FreshMvvM翻译一

是否有mvvmcross提供的标签式布局平台?