Avalonia.FuncUI 1.5.0

前缀已保留
dotnet add package Avalonia.FuncUI --version 1.5.0                
NuGet\Install-Package Avalonia.FuncUI -Version 1.5.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Avalonia.FuncUI" Version="1.5.0" />                
对于支持 包引用 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Avalonia.FuncUI --version 1.5.0                
#r "nuget: Avalonia.FuncUI, 1.5.0"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将其复制到交互式工具或脚本的源代码中以引用包。
// Install Avalonia.FuncUI as a Cake Addin
#addin nuget:?package=Avalonia.FuncUI&version=1.5.0

// Install Avalonia.FuncUI as a Cake Tool
#tool nuget:?package=Avalonia.FuncUI&version=1.5.0                

Stand With Ukraine

<h1 align="center"><img src="github/img/logo/FuncUI_Boxed.png" width="32px" alt="Avalonia FuncUI"> Avalonia FuncUI </h1>

<p align="center">使用 <a href="https://fsharp.org">F#</a> 和 <a href="https://github.com/AvaloniaUI/Avalonia">AvaloniaUI</a> 开发跨平台 GUI 应用程序!</p> <p align="center"> <img src="https://img.shields.io/github/languages/top/fsprojects/Avalonia.FuncUI" alt="GitHub top language"> <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/fsprojects/Avalonia.FuncUI"> <img src="https://img.shields.io/github/license/fsprojects/Avalonia.FuncUI"> <img alt="Nuget (with prereleases)" src="https://img.shields.io/nuget/vpre/Avalonia.FuncUI?color=green&label=package%20Avalonia.FuncUI"> </p><br>

alternate text is missing from this package README image

关于

FuncUI 是建立在 AvaloniaUI 之上的一个薄层。它包含用于以不同编程风格编写 UI 应用程序的抽象。它还包含组件和状态管理系统。

FuncUI 主要由以下部分组成

  • 虚拟 DOM
  • 视图 DSL
  • 组件模型

资源

贡献

请通过问题报告、拉取请求、代码审查、文档编写和讨论等方式为这个库做出贡献。

示例

使用组件的示例

使用组件库制作的一个简单计数器

type Components =
    static member Counter () =
        Component (fun ctx ->
            let state = ctx.useState 0
    
            DockPanel.create [
                DockPanel.children [
                    Button.create [
                        Button.onClick (fun _ -> state.Set(state.Current - 1))
                        Button.content "click to decrement"
                    ]
                    Button.create [
                        Button.onClick (fun _ -> state.Set(state.Current + 1))
                        Button.content "click to increment"
                    ]
                    TextBlock.create [
                        TextBlock.dock Dock.Top
                        TextBlock.text (string state.Current)
                    ]
                ]
            ]
        )

组件示例文件夹中查找更多使用组件的示例。

使用 Elmish 的示例

与上述相同的计数器,但使用 Avalonia.FuncUI.Elmish

module Counter =
    type CounterState = { count : int }
    let init = { count = 0 }
    type Msg = Increment | Decrement

    let update (msg: Msg) (state: CounterState) : CounterState =
        match msg with
        | Increment -> { state with count =  state.count + 1 }
        | Decrement -> { state with count =  state.count - 1 }
    
    let view (state: CounterState) (dispatch): IView =
        DockPanel.create [
            DockPanel.children [
                Button.create [
                    Button.onClick (fun _ -> dispatch Increment)
                    Button.content "click to increment"
                ]
                Button.create [
                    Button.onClick (fun _ -> dispatch Decrement)
                    Button.content "click to decrement" 
                ]
                TextBlock.create [
                    TextBlock.dock Dock.Top
                    TextBlock.text (sprintf "the count is %i" state.count)
                ]
            ]
        ]    

Elmish 示例文件夹中查找更多使用 Elmish 的示例

维护者

Avalonia.FuncUI的当前共同维护者有

  • @Numpsy
  • @JordanMarr
  • @sleepyfran
  • @JaggerJo(项目负责人)

"fsprojects"下项目的默认维护者账户是@fsprojectsgit - F# 社区项目孵化空间(仓库管理)

商业支持

如果您需要商业支持合同或有兴趣进行合同工作,请联系 [email protected]

星标历史

<a href="https://star-history.com/#fsprojects/Avalonia.FuncUI&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=fsprojects/Avalonia.FuncUI&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=fsprojects/Avalonia.FuncUI&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=fsprojects/Avalonia.FuncUI&type=Date" /> </picture> </a>

产品 兼容的和额外的计算目标框架版本。
.NET net8.0 是兼容的。 net8.0-android 是计算得出的。 net8.0-browser 是计算得出的。 net8.0-ios 是计算得出的。 net8.0-maccatalyst 是计算得出的。 net8.0-macos 是计算得出的。 net8.0-tvos 是计算得出的。 net8.0-windows 是计算得出的。
兼容的目标框架
包含的目标框架(在包中)
更多关于目标框架.NET Standard的信息。

NuGet 包 (4)

显示依赖于 Avalonia.FuncUI 的前4个 NuGet 包

下载
Avalonia.FuncUI.Elmish

为 Avalonia.FuncUI 提供的 Elmish 集成

SilkyFowl.Avalonia.FuncUI.LiveView

Avalonia.FuncUI 的 live fs/fsx 预览器。

Navs(FuncUI)

包描述

FluentAvalonia.FuncUI.Bindings

FluentAvalonia.FuncUI.Bindings 是一个库,它将 FluentAvalonia 与 Avalonia.FuncUI 集成在一起。它包含使您能够在 Avalonia.FuncUI 提供的 F# 上下文中使用 FluentAvalonia 控件的绑定。

GitHub 仓库 (1)

显示依赖于 Avalonia.FuncUI 的最受欢迎的前 1 个 GitHub 仓库

仓库 星数
AvaloniaUI/Live.Avalonia
为 Avalonia 应用程序提供应用内实时重新加载。
版本 下载 最后更新
1.5.0 92 8/12/2024
1.4.0 635 4/26/2024
1.3.0 875 2/23/2024
1.2.0 579 1/6/2024
1.1.0 801 10/23/2023
1.0.2 154 10/22/2023
1.0.1 1,174 8/8/2023
1.0.0 1,401 7/6/2023
1.0.0-rc1.1.1 135 6/26/2023
1.0.0-rc1.1.0 652 6/20/2023
0.6.0-preview9.1 366 4/2/2023
0.6.0-preview9 309 3/10/2023
0.6.0-preview8 185 2/26/2023
0.6.0-preview7 519 1/26/2023
0.6.0-preview6.1 123 1/23/2023
0.6.0-preview6 166 1/22/2023
0.6.0-preview5 199 1/19/2023
0.6.0-preview4 204 1/15/2023