精华内容
下载资源
问答
  • 2015-12-28 15:44:15


    LINK 1 - How to use Prism with Xamarin.Forms http://brianlagunas.com/first-look-at-the-prism-for-xamarin-forms-preview/

    (Note: the Prism.Forms version 6.0.1 doesn't support Xamarin.Forms v2 yet)


    LINK 2 - Prism GitHub https://github.com/PrismLibrary



    更多相关内容
  • WPFXamarin:相似性 & 差异

    千次阅读 2019-10-26 11:00:56
    WPF 支持控件模板的概念,这些模板提供控件的可视化说明(Button、ListBox等)。如上所述,Xamarin 使用具体的_呈现_类,此类与本机平台(IOS、Android 等)进行交互,以可视化控件。 但是,Xamarin_的确_具有...

    控件模板

    WPF 支持控件模板的概念,这些模板提供控件的可视化说明(ButtonListBox 等)。 如上所述,Xamarin 使用具体的_呈现_类,此类与本机平台(IOS、Android 等)进行交互,以可视化控件。

    但是,Xamarin_的确_具有 ControlTemplate 类型-它用于主题 Page 对象。 它为提供一致内容的 Page 提供定义,但允许页的用户更改颜色、字体等,甚至添加元素以便使其对应用程序是唯一的。

    这种情况的常见用法包括身份验证对话、提示和提供标准化,但 themable 的页面外观,可以在应用中自定义。 作为此支持的一部分,将使用很多熟悉的 WPF 命名控件:

    1. ContentPage
    2. ContentView
    3. ContentPresenter
    4. TemplateBinding

    但必须知道,它们在 Xamarin 中的作用并_不_相同。 有关此功能的详细信息,请参阅文档页

    XAML

    XAML 用作 WPF 和 Xamarin 的声明性标记语言。 大多数情况下,语法是相同的,主要区别是 XAML 图形定义/创建的对象。

    • Xamarin 支持XAML 2009 规范;这样可以更轻松地定义 strings、ints 等的数据,以及定义泛型类型和将参数传递给构造函数。

    • 目前没有办法动态加载 XAML,如 WPF 可以通过 XamlReader。 不过,你可以使用NuGet 包获得相同的基本功能。

    标记扩展

    Xamarin 支持通过标记扩展扩展 XAML,与 WPF 非常类似。 它具有相同的基本构建基块:

    1. {x:Array}
    2. {Binding}
    3. {DynamicResource}
    4. {x:Null}
    5. {x:Static}
    6. {StaticResource}
    7. {x:Type}

    此外,它还包括 XAML 2009 规范 {x:Reference} 和 {TemplateBinding} 标记扩展,该扩展可用于 Xamarin 所支持的ControlTemplate 专用版。

     警告

    @No__t_0 支持不相同-即使它具有相同的名称。

    Xamarin 也支持自定义标记扩展,但实现略有不同。 在 WPF 中,必须派生自 MarkupExtension 抽象基类。 在 Xamarin 中,它被替换为接口 IMarkupExtension 或 IMarkupExtension<T> 更灵活。

    与 WPF 一样,单个必需的方法是从标记扩展返回值的 ProvideValue 方法。

    绑定基础结构

    执行的核心概念之一是将视觉对象属性连接到 .NET 数据属性的数据绑定基础结构。 这将启用各种体系结构模式,如 MVVM。 基本设计完全相同-你具有可绑定的基类msds-bindableobject,这是在 WPF 中,这是system.windows.dependencyobject>类。 此基类用作将作为数据绑定中的目标的所有对象的根上级。 然后,派生的类公开BindableProperty对象,这些对象充当属性值的后备存储(这些对象在 WPF 中定义为DependencyProperty对象)。

    定义可绑定属性

    Xamarin 中的可绑定属性的定义与 WPF 相同:

    1. 对象必须派生自 BindableObject
    2. 必须有一个类型为的公共静态字段,BindableProperty 声明为定义属性的后备存储密钥。
    3. 应该存在使用 GetValue 和 SetValue 来检索和更改属性值的公共实例属性包装。

    有关完整示例,请参阅Xamarin 中的可绑定属性

    附加属性

    附加属性是可绑定属性的子集,它们的工作方式与在 WPF 中的工作方式相同。 主要区别在于,在这种情况下,属性包装省略,并替换为所属类的一组静态 get/set 方法。 有关详细信息,请参阅Xamarin 中的附加属性

    使用绑定引擎

    使用绑定引擎的过程与在 WPF 中的过程相同。 可在代码隐藏中利用此方法:创建绑定到源对象(任意 .NET 类型)的 Binding 对象和可选属性值(如果为省略,它会将源对象视为属性本身,就像 WPF)。 然后,可以使用任何 BindableObject 上的 SetBinding 将绑定关联到 BindableProperty

    或者,可以使用 BindingExtension 在 XAML 中定义绑定关系。 它与 WPF 中的扩展具有相同的基本值。

    与 WPF 相比,绑定支持和引擎更类似于 Silverlight 实现。 在 Xamarin 中未实现某些缺少的功能。 Forms:

    • 不支持绑定中的以下功能:
      • BindingGroupName
      • BindsDirectlyToSource
      • IsAsync
      • 多重绑定
      • NotifyOnSourceUpdated
      • NotifyOnTargetUpdated
      • NotifyOnValidationError
      • System.windows.data.binding.updatesourcetrigger
      • UpdateSourceExceptionFilter
      • System.windows.data.binding.validatesondataerrors
      • ValidatesOnExceptions
      • ValidationRules 集合
      • XPath
      • XmlNamespaceManager

    RelativeSource

    不支持 RelativeSource 绑定。 在 WPF 中,它们允许绑定到 XAML 中定义的其他可视元素。 在 Xamarin 中,可以使用{x:Reference} 标记扩展来实现这一功能。 例如,假设有一个名为 "otherControl" 的控件,该控件具有 Text 属性,则可以将其绑定到该控件,如下所示:

    WPF

    XAML复制

    Text={Binding RelativeSource={RelativeSource otherControl}, Path=Text}
    

    Xamarin.Forms

    XAML复制

    Text={Binding Source={x:Reference otherControl}, Path=Text}
    

    @No__t_0 功能可以使用相同的功能。 但是,不支持按类型({RelativeSource FindAncestor})查找上级。

    绑定上下文

    在 WPF 中,可以定义 reprents 默认绑定源的 DataContext 属性值。 如果未定义绑定的源,则使用此属性值。 此值在可视化树中向下继承,使其在更高级别上定义,并由子级使用。

    在 Xamarin 中,此同一功能是无可的,但属性名称 BindingContext

    值转换器

    Xamarin 格式完全支持值转换器。格式与 WPF 一样。 使用相同的接口形状,但 Xamarin. Forms 具有在 Xamarin.Forms 命名空间中定义的接口。

    模型-视图-ViewModel

    WPF 和 Xamarin 都完全支持 MVVM。

    WPF 包含一个内置的 RoutedCommand,这种情况有时会使用;Xamarin. Forms 在 ICommand 接口定义之外没有内置的命令支持。 可以包括多种 MVVM 框架,以添加所需的基类来实现 MVVM。

    INotifyPropertyChanged 和 INotifyCollectionChanged

    Xamarin. Forms 绑定完全支持这两个接口。 与许多基于 XAML 的框架不同,可在 Xamarin 中的后台线程上引发属性更改通知。窗体(就像 WPF)一样,绑定引擎会正确地转换到 UI 线程。

    此外,这两种环境都支持 SynchronziationContext,并 async / await 执行正确的线程封送处理。 WPF 包含所有视觉对象上的Dispatcher 类,Xamarin。窗体有一个静态方法 Device.BeginInvokeOnMainThread 也可以使用该方法(尽管SynchronizationContext 是跨平台编码的首选方法)。

    • Xamarin 包含支持集合更改通知的 ObservableCollection<T>
    • 您可以使用 BindingBase.EnableCollectionSynchronization 为集合启用跨线程更新。 API 与 WPF 变体略有不同,请查看文档中的使用情况详细信息

    数据模板

    数据模板在 Xamarin 中受支持,可自定义 ListView 行(单元)的呈现。 与 WPF 一起使用,它可以将 DataTemplates 用于任何面向内容的控件,Xamarin 目前仅将其用于 ListView。 可以以内联方式定义模板定义(分配给 ItemTemplate 属性),也可以将其用作ResourceDictionary 中的资源。

    此外,它们与 WPF 对应项并不完全相同。

    1. @No__t_0 的根元素必须_始终_是 ViewCell 对象。
    2. 数据模板完全支持数据触发器,但必须包括一个 DataType 属性,该属性指示与触发器关联的属性的类型。
    3. DataTemplateSelector 也受支持,但派生自 DataTemplate,因此只是直接分配到 ItemTemplate 属性(与ItemTemplateSelector 在 WPF 中)。

    System.windows.controls.itemscontrol>

    在 Xamarin 中没有与 ItemsControl 等效的内置;但有一个适用于 Xamarin 的自定义。此处提供了窗体

    用户控件

    在 WPF 中,UserControls 用于提供具有关联行为的 UI 部分。 在 Xamarin 中,我们将 ContentView 用于相同的目的。 两者都支持 XAML 中的绑定和包含。

    WPF 包含很少使用的 NavigationService,可用于提供类似于浏览器的导航功能。 大多数应用程序并不会干扰这一点,而是使用不同的 Window 元素或窗口的不同部分来显示数据。

    在电话设备上,不同的_屏幕_通常是解决方案,因此 Xamarin. forms 提供多种形式的导航支持:

    导航样式页面类型
    基于堆栈(push/pop)NavigationPage
    母版/详细信息MasterDetailPage
    制表符TabbedPage
    向左或向右轻扫CarouselView

    @No__t_0 是最常用的方法,并且每个页面都有一个 Navigation 属性,该属性可用于在导航堆栈中进行推送或弹出页面。 这是最接近于 WPF 中的 NavigationService 的。

    URL 导航

    WPF 是一种面向桌面的技术,可以接受命令行参数来引导启动行为。 Xamarin 可以使用深层 URL 链接来跳转到启动时的页面。

    展开全文
  • 使用WPF后端针对Xamarin Forms应用程序进行实时XAML开发。 注意:正在进行中! 建立 克隆此存储库。 使用Visual Studio在FormsWPFLive.sln中打开解决方案,然后按F5。 用法 要实时开发XAML,请打开FormsWPFLive...
  • WPFXamarin,Balzor,Asp.net Core WebApi 中文| 介绍 本项目主要以C#为核心,构建一个多平台的应用示例,该项目主要包含以下平台: WPF Core建造的DeskTop Xamarin构建的IOS和Adnroid Blazor构建的WebUI Asp...
  • 一个干净轻巧的MVVM框架,适用于WPF,UWP和Xamarin.Forms受MVVM Light Toolkit启发。 目标 没有第三方依赖项,例如CommonServiceLocator或System.Windows.Interactivity 。 避免出现–仅包含核心MVVM类型和服务,...
  • WPFToMobile 使用Xamarin.Forms将示例WPF应用程序移植到iOS,Android和UWP。 阅读我的以了解详细信息。 移动应用 WPF应用
  • Xamarin.Forms WPF示例 此存储库包含库中的示例。 您可以在此处找到原始示例应用程序的WPF版本。 请访问以获取其描述。 对于Xamarin.Forms相关问题,请使用。 样品提交指南 请遵循的。
  • JHRS WPF框架用于演示如何使用wpfxamarin开发开发框架。该演示框架仅提供一个想法。 JHRS WPF框架用于演示如何使用wpfxamarin构建开发框架。该演示框架仅提供一个想法。如果将其应用于实际项目,则需要自己完成...
  • 该项目包含适用于.NET的ArcGIS Runtime SDK的示例,包括WPF,UWP和Xamarin平台。 样本目录 查看每个平台的目录: 使用说明 分叉,然后克隆存储库或下载.zip文件。 在ArcGIS Runtime SDK for .NET中确认感兴趣的API...
  • Weather是一个Xamarin.Forms WPF后端应用程序,它使用来演示利用大量功能的新后端的可能性。 您是否想查看Xamarin.Forms WPF后端的? Xamarin.Forms应用 允许您从一个共享的代码库中为iOS,Android, Windows ,...
  • 现在完全开源的 Xamarin Forms 是支持使用 WPF 进行承载,也就是使用 Xamarin 开发的控件等是可以在 WPF 项目使用的。本文来告诉大家如何在 WPF 中运行 Xamarin Forms 项目,让 Xamarin Forms 构建为 WPF 应用 ...

    现在完全开源的 Xamarin Forms 是支持使用 WPF 进行承载,也就是使用 Xamarin 开发的控件等是可以在 WPF 项目使用的。本文来告诉大家如何在 WPF 中运行 Xamarin Forms 项目,让 Xamarin Forms 构建为 WPF 应用

    默认的 VS 没有加上 WPF 的模版,而官方文档 WPF Platform Setup - Xamarin 旧了一点,因为社区的开发比较激进,而文档没有更新

    如果你按照官方文档玩,预计会在构建的时候看到如下提示

     App.xaml : error :  : XamlC error XFC0000 : Cannot resolve type "Application"

    当然,现在是 2020.07.31 也许你看本文的博客,官方文档更新了,而本文也失效了。此时请不要以为我在骗你

    上面代码的原因是此时不需要使用 App.xaml 了,也不需要使用 MainWindow.xaml 了,让咱手动从零开始创建

    当然,需要先存在一个 Xamarin Forms 项目哈,最好这是一个使用模版重新创建的项目,使用的版本都是 4.8 以上。我推荐是新创建一个,这样你通过之后,才进行修改,能解决因为自己原有的 Xamarin Forms 项目的坑让代码构建失败

    新建一个叫 Xx.WPF.csproj 的项目,请将 Xx 替换为你自己的名字。使用 WPF 项目没有安卓项目那么弱,对命名长度要求比较多,在安卓项目里面如果你敢将名字命名比较长,那么将会因为路径太长炸掉,详细请看 Xamarin 构建安卓失败 因为路径太长

    在 Xx.WPF.csproj 添加如下代码

    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net472</TargetFramework>
        <UseWPF>true</UseWPF>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Xamarin.Forms.Platform.WPF" Version="4.8.0.1269" />
      </ItemGroup>
    
    </Project>
    

    可以看到上面代码的是十分简单的逻辑代码。但是如上面代码写的,使用的 TargetFramework 版本是 .NET Framework 4.7.2 这就意味着最低支持的系统是 Win7 带 Sp1 的系统。因为 Win7 非 sp1 最高版本 .NET Framework 是 4.5.2 同时不支持 .NET Core 任何版本,而 Win7 加上 Sp1 的系统能支持到 .NET Framework 4.8 的版本和 .NET Core 版本

    那为什么需要采用 .NET Framework 4.7.2 的版本?因为 需要有 OpenTK 的支持,而 OpenTK 最低是 .NET Framework 4.6.1 因此暂时无法降级到 .NET Framework 4.5 版本用来支持 Win7 非 sp1 系统

    好,继续写一个叫 Program.cs 的类,小伙伴可以看到,一个 WPF 程序是只有 csproj 文件和 Program.cs 文件就可以完成对 Xamarin Forms 项目的承载

    在 Program.cs 创建主函数

            static void Main(string[] args)
            {
    
            }

    注意需要给 Main 添加 STA 线程

            [STAThread]
            static void Main(string[] args)
            {
    
            }

    如果没有加上这个特性,那么将会在运行提示如下代码

    System.InvalidOperationException:“调用线程必须为 STA,因为许多 UI 组件都需要。”

    接下来就是创建 Application 创建 WPF 应用,然后运行消息调度,接着加载 Xamarin Forms 应用作为界面

                var application = new Application();
                Forms.Init();
                var formsApplicationPage = new FormsApplicationPage();
                formsApplicationPage.LoadApplication(new XamarinNeller.App());
                application.Run(formsApplicationPage);

    此时就完成了,试试运行一下

    代码放在 github 欢迎小伙伴访问

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • Prism是用于在WPFXamarin Forms,Uno Platform和WinUI中构建松耦合,可维护和可测试的XAML应用程序的框架。 每个平台都有单独的版本,这些版本将在独立的时间表上开发。 Prism提供了一组设计模式的实现,这些模式...
  • lqclass.com 开源博客网站:react + .net核心网络API,wpf + xamarin 2020-12-21 增加WPF后台管理端登录视图 2021-01-14 增加登录到主窗口操作
  • Orion.net 开源工具,用于远程调试和测试WPFXamarin.Forms应用
  • 此存储库包含可用于为c#项目(如WPFXamarin和ASP)生成Font Awesome Unicode的代码 我需要在我的Xamarin和ASP应用程序中使用FA,这将使我免于为每件小事下载图像。 我在网上找到了一个网站,该网站直接使用...
  • 在您的WPF,UWP或Xamarin Forms应用程序与集成。 该项目提供Prism的ILoggerFacade的自定义实现,该实现将消息转发到Serilog记录器,从而使开发人员可以在Serilog中捕获以其ViewModels和Services编写的记录事件。 给...
  • 基本上 XamarinWPF 的技术是相同的,但是有一些小细节和属性不同,本文记录一些不同的点,方便小伙伴将 WPF 项目迁移为 Xamarin 项目 需要注意的是 Xamarin 原生支持作为 WPF 控件运行,支持在 WPF 运行,反...

    基本上 Xamarin 和 WPF 的技术是相同的,但是有一些小细节和属性不同,本文记录一些不同的点,方便小伙伴将 WPF 项目迁移为 Xamarin 项目

    需要注意的是 Xamarin 原生支持作为 WPF 控件运行,支持在 WPF 运行,反过来不可以

    也就是用 Xamarin.Forms 写的应用能作为 UWP 和 WPF 应用运行,也可以作为 Android 和 IOS 运行,也可以使用 GTK# 在 Linux 下运行。本文只是告诉大家如何从一个已有的 WPF 项目迁移到 Xamarin 上

    控件

    通用控件的属性需要修改

    Visibility-IsVisible

    Panel

    通用的容器属性需要修改

    HorizontalAlignment-HorizontalOptions
    VerticalAlignment-VerticalOptions
    MinWidth-MinimumWidthRequest

    StackPanel

    在 WPF 的 StackPanel 需要换 StackLayout 布局

    TextBlock

    用 Label 替换

    TextBox

    用 Editor 替换

    Button

    如果是文本按钮将 Content 替换为 Text 属性

    将 Click 事件替换为 Clicked 事件,后台代码替换

    从
    
            private void Button_OnClick(object sender, RoutedEventArgs e)
            {
    
            }
    
    替换为
    
            private void Button_Clicked(object sender, EventArgs e)
            {
    
            }

    UI 控件比较 - Xamarin

    WPF 与 Xamarin:相似性 & 差异 - Xamarin

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 本土化 .net库,可以帮助您管理应用程序中的本地化。 要在您的项目中使用它,Mafe.Localization NuGet包表示一个基础库。 使用Wpf Windows,必须安装Mafe.... 实际上,库有两个扩展:Wpf Window和Xamarin App。
  • Xamarin.Forms.Maps.WPF 页数 Xamarin.Forms.Pages Pages.Azure Xamarin.Forms.Pages.Azure GTK平台 Xamarin.Forms.Platform.GTK 平台 Xamarin.Forms.Platform.WPF 视觉材料 Xamarin.Forms.Visual.Material ...
  • 适用于.NET WPF,Silverlight,Xamarin和UWP的轻便且类型安全的MVVM库 水母在: PM> Install-Package Jellyfish 确保还签出 ! 与其他MVVM , 或等MVVM框架相比,该框架是 尽可能轻 使用现代最佳实践 使用现代...
  • 生成状态包平台/功能包名称稳定的预发行版本每晚Feed Azure(主分支)Core Xamarin.Forms AppLinks Xamarin.Forms.AppLinks Maps Xamarin.Forms.Maps Maps.GTK Xamarin.Forms.Maps.GTK Maps.WPF Xamarin.Forms。...
  • 微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音.pdf
  • MediaManager-适用于Xamarin和Windows的跨平台媒体插件 设计简单易用 从远程http,嵌入式和本地源本地播放媒体文件 本机媒体通知和远程控制 默认情况下,队列和播放管理 播放状态(正在播放,正在缓冲,正在加载,已...
  • 在遵循MVVM设计模式的同时,我收集了XamarinWpf期间的一些经验。 我的想法是,在开发基于Xaml的应用程序时,面对不同的情况时,我想将此存储库用作查找。 我也想与世界分享! :globe_showing_Americas: 注意:这...
  • [Xamarin.forms] FontAwesome图标字体库用法,FontAwesome 5.12.1版,包含1500左右图标;移动APP开发使用Font Awesome图标
  • Reactive Forms是基于Xamarin Forms和ReactiveUI构建的一组扩展。 页面导航还依赖于Splat(1.6.2)。 建立 新建一个Xamarin Forms PCL项目 确保仅支持受支持的项目类型(您可能需要卸载Xamarin Forms nuget软件包...
  • Xamarin表格 Xamarin.Forms提供了一种完全使用C#快速构建适用于iOS,Android,Windows和macOS的本机应用程序的方法。 在了解有关该平台的更多信息。 建立状态 配套 平台/功能 包裹名字 稳定(2.5.0分支) 每晚...
  • 适用于Xamarin,Windows和Gtk2的剪贴板插件 ... WPF 4.7.2 API用法 从任何项目或.NET Standard库调用Plugin.Clipboard.CrossClipboard.Current以获得对API的访问。 using Plugin . Clipboard ; ... // To set the
  • xamarin android自定义标题栏,希望能够帮助到大家。。
  • Xamarin开发Android不显示标题栏,隐藏title。代码由vs2017开发,下载就能使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,042
精华内容 816
关键字:

wpf xamarin