An open API service indexing awesome lists of open source software.

https://github.com/syminomega/syminui

WPF UI kit. Build interface with Neomorphism style and C# UI which use MVU design.
https://github.com/syminomega/syminui

wpf wpf-controls wpf-styles wpf-ui

Last synced: 3 months ago
JSON representation

WPF UI kit. Build interface with Neomorphism style and C# UI which use MVU design.

Awesome Lists containing this project

README

          

# SyminUI
![SyminUI Icon](./Images/SyminUI.png)
SyminUI is a WPF UI kit. Build interface with Neomorphism style and **C#UI** in MVU pattern (WIP).\
SyminUI 是 WPF 的 UI 组件库,并使用称为 **C#UI** 的 MVU 设计模式进行 UI 搭建(画饼中),默认样式为新拟态风格。

[![build](https://github.com/syminomega/SyminUI/actions/workflows/dotnet-desktop.yml/badge.svg)](https://github.com/syminomega/SyminUI/actions/workflows/dotnet-desktop.yml)

## Preview 总览
![Styles Demo](./Images/StylesDemo.jpg)

## ⭐ Next Step
1. Separate the theme and MVU architecture into different packages.\
将主题文件和MVU架构拆分到不同的项目中。
2. Add dark theme.\
添加深色主题支持。

## 🧰 Quick Start 快速使用
1. Add `SyminData` and `SyminUI` reference to your project.\
在项目中添加 `SyminData` 和 `SyminUI` 引用.
2. Add these code to `App.xaml`.\
将以下代码添加至 `App.xaml` 中。

``` xml










```
## 🛠️ MVU Design (Working In Progress)

Introducing the new way to design the user interface.\
使用全新的设计模式制作用户界面!

```c#
public class TestView : ViewContainer
{
///
/// 提供视图
///
public override IView ViewProvider => MainView;

readonly State myText = "My Text";

//测试可切换控件
readonly State dynamicView = new Label("Label A");
readonly State inputText = "Input Message Here";

readonly ObservableCollection textCollection = new()
{
"1111",
"2222",
"3333"
};

public VStack MainView => new VStack
{
new HStack
{
new Label(myText),
new Button("Change Value Button")
.OnClick(() => { myText.Value = "Text Changed!"; })
},
new HStack
{
new Button("Open Canvas")
.OnClick(() =>
{
CanvasTestWindow testWindow = new();
testWindow.Show();
}),
new Label("Label In HStack"),
}.HorizontalAlignment(HorizontalAlignment.Center),
new Grid()
{
new ContentView(dynamicView)
.GridLayout(0, 0),
new Button("Change Content")
.OnClick(() => { dynamicView.Value = new Label("Changed View"); })
.GridLayout(0, 1),
new InputField(inputText)
.GridLayout(1, 0),
new Button("Show Input Value")
.OnClick(() => MessageBox.Show(inputText.Value))
.GridLayout(1, 1),
}
.Cols("2*", ("*", 200, 400))
.Rows("auto", "auto"),
new Button("Add List Item")
.OnClick(TestCollection),
new ItemsView()
.Foreach(textCollection, x => new HStack
{
new Label("List Items"),
new Button(x),
})
};

private void TestCollection()
{
textCollection.Insert(1, "Inserted Item");
}
}
```
![MVU Demo](./Images/MVUDemo.jpg)

## ⚠ Known Issues 已知问题
+ Slider view tick placement does not work.\
滑条的指示器样式未设计。
+ MenuItem disabled style is not finished.\
菜单按钮禁用样式尚未完善。
+ ListBox Header may not fit the row length.\
ListBox的头部可能和内容没法对齐。

## 📄 License 许可证
[The MIT License](./LICENSE)