# 基础UI库(SKMC.UI)
统一资源,统一样式,统一字体,自定义控件,自定义用户控件。
## 基础说明
主要分类:Assets资源文件、Converters基础转换器、CustomControls自定义控件、Styles控件样式、Themes主题、ValidationRules校验规则资源。
### Colors.xaml
颜色资源文件,使用16进制颜色标签,作为后续画刷基础颜色,项目中可根据需求更改
```
```
### Brushes.xaml
通用基础画刷,该资源作为全局通用画刷,不随主题切换变更,在XAML使用时需要注意目标控件是否需要跟随主题切换变更。SolidColorBrush固定画刷引用Colors.xaml资源内设定的Color
```
```
### Dark.xaml
深色主题资源文件对项目中部分/主要控件颜色设立动态颜色切换,比如:整体背景色、字体颜色、按钮颜色等。只区分主要颜色,其它颜色使用Brushes.xaml不跟随主题变更显示
```
#1E1E1E
#161616
#121212
#FCF3EC
#000000
#2D2D2D
#3C3C3C
#FFFFFF
#FFFFFF
#292929
#9C9C9C
#444
#848484
#FFFFFF
#9C9C9C
#808080
#3a3a3a
#FFFFFF
#333333
#00AFAF
#CCEAEC
#006D75
#00929D
```
### Light.xaml
浅色主题同上,深色主题与浅色主题切换时,需要保证两者画刷资源key相同且数量相同,切换主题本质上切换**Dark.xaml**和**Light.xaml**资源,若同一个画刷只存在其中一个主题文件中,在切换是会找不到对应**key**资源。
```
#FFFFFF
#E8F1FA
#DCDCDC
#FCF3EC
#FFFFFF
#FCE4D2
#FFFBF0
#333333
#1A1A1A
#F5F5F5
#666666
#FFFFFF
#7A7A7A
#1A1A1A
#666666
#A0A0A0
#C8C8C8
#1A1A1A
#CCCCCC
#00929D
#CCEAEC
#006D75
#00929D
```
### Icon.Xaml
图标Icon可在SKMC.UI.DesignApp项目查看效果图,或者运行SKMC.UI.DesignApp.exe查看具体效果。


## 使用方法
```
Styles/
|—— Border.xaml # Border 样式
|—— Button.xaml # Button 样式
|—— Calendar.xaml # Calendar 样式
|—— ComboBox.xaml # ComboBox 样式
|—— DataGrid.xaml # DataGrid 样式
|—— DatePicker.xaml # DatePicker 样式
|—— ListView.xaml # ListView 样式
|—— RadioButton.xaml # RadioButton 样式
|—— ScrollViewer.xaml # ScrollViewer 样式
|—— TapItem.xaml # TapItem 样式
|—— TextBlock.xaml # TextBlock 样式
|—— TextBox.xaml # TextBox 样式
└── ToggleButton.xaml # ToggleButton 样式
```
### 在XAML中使用
#### Border
- Border.Base
```
```
#### Button
- Button.Base
```
```
- Button.Primary
```
```
- Button.Secondary
```
```
- Button.WithIcon
```
xmlns:c="clr-namespace:SKMC.UI.CustomControls;assembly=SKMC.UI"
```
> Button.WithIcon样式:设置*Icon*属性按钮将会显示图标;不设置默认不显示。设置*IconSize*将根据设置值调整Icon图标大小,宽度长度相同。
- Button.Debug
```
```
- Button.WindowControl
- Button.SimpleIcon
```
```
#### ComboBox
- ComboBox.Primary
```
```
#### DataGrid
- DataGrid.Primary
```
```
- DataGrid.EditingTextBox
```
```
#### DatePicker
- DatePicker.Primary
```
```
#### ListView
- ListView.Primary
```
```
#### RadioButton
- RadioButton.SystemMenu
```
xmlns:c="clr-namespace:SKMC.UI.CustomControls;assembly=SKMC.UI"
```
- RadioButton.Base
- RadioButton.Primary
```
```
#### ScrollViewer
- ScrollViewer.Default
```
```
#### TapItem
- TapItem.Primary
```
```
#### TextBlock
- TextBlock.Primary
```
```
#### TextBox
- TextBox.Primary
```
xmlns:c="clr-namespace:SKMC.UI.CustomControls;assembly=SKMC.UI"
```
> Unit属性:显示文本框输入内容的单位,不设置不显示。UnitSize属性:设置Unit单位显示大小。Icon属性:显示文本框的图标,不设置不显示。NumpadActivity属性:True激活数字输入小键盘,False不激活小键盘,默认值False。
> SKTextBox类:内部可根据具体需求增加依赖属性,即使创建不使用也无太大影响。
- TextBox.SimpleWatermark
```
```
#### ToggleButton
- ToggleButton.Base
- ToggleButton.Primary
- ToggleButton.SimpleLamp
```
```
- ToggleButton.SimpleLocker
```
```
- ToggleButton.ThemeSwitch
```
```
### 用户控件
#### NumpadControl
- NumpadControl.xaml
```
```
> NumpadControl数字键盘控件依附**SKTextBox**控件,且输入文本框属性*NumpadActivity*设置为True,在鼠标点击文本框时弹出数字小键盘。*NumpadActivity*设置为False,文本框为普通输入框不弹数字键盘。
> NumpadControl数字键盘内文本框可根据**SKTextBox**同步显示单位,若**SKTextBox**设置了单位,则数字键盘内显示相同单位,反之则无。
## 安装说明
1. 克隆或下载本项目
2. 可直接添加到目标项目使用
3. 运行SKMC.UI.DesignApp项目可查看Icon图标及相关控件Style样式,也可参考代码了解使用方法。
## 依赖项
- 纯手搓无非官方第三方依赖