# WPFDevelopers.Minimal
**Repository Path**: yiliaokeji/WPFDevelopers.Minimal
## Basic Information
- **Project Name**: WPFDevelopers.Minimal
- **Description**: 这是一款WPF客户端基础控件,欢迎使用
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://gitee.com/WPFDevelopersOrg
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 27
- **Created**: 2022-10-25
- **Last Updated**: 2024-04-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

 
      
         
      
### 停止更新,不建议使用,请跳转[自定义控件库](https://github.com/WPFDevelopersOrg/WPFDevelopers) https://github.com/WPFDevelopersOrg/WPFDevelopers  
### [码云](https://gitee.com/WPFDevelopersOrg) https://gitee.com/WPFDevelopersOrg  
### 加入QQ群:458041663
### 欢迎关注微信公众号
   
### 停止更新,不建议使用,请跳转[自定义控件库](https://github.com/WPFDevelopersOrg/WPFDevelopers) https://github.com/WPFDevelopersOrg/WPFDevelopers  
### [码云](https://gitee.com/WPFDevelopersOrg) https://gitee.com/WPFDevelopersOrg  
### 加入QQ群:458041663
### 欢迎关注微信公众号  
 ### 捐助
如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。
| 支付宝 | 微信 |
|----|-----|
|
  
### 捐助
如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。
| 支付宝 | 微信 |
|----|-----|
|   |
   |    |
### 贡献者
   |
### 贡献者
 
 ### .Net Version
|  .Net Version   | Status  |
|  ----  | ----  |
| Net40  | ✅ |
| net45  | ✅ |
| net46  | ✅ |
| net47  | ✅ |
| net48  | ✅ |
| netcoreapp3.0  | ✅ |
| net5.0-windows  | ✅ |
| net6.0-windows  | ✅ |
# __最新请使用预览版Nuget包__
###  效果展示  
  
  
### Nuget 版本大于等于 3.2.3 效果展示
 [Blue](#Blue)     
 [Green](#Green)     
 [Red](#Red)     
 [Orange](#Orange)  
 [Purple](#Purple)  
###  第一步: 添加 nuget;
```
Install-Package WPFDevelopers.Minimal
```
###  第二步:  App.xaml中增加节点:
```xaml
       注意:从旧版升级报错时把 xmlns:ws="https://github.com/WPFDevelopersOrg.WPFDevelopers.Minimal" 
       改成xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal"
```
`    xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal" `
``` XAML
    
        
            
                
                
                
                
            
        
    
```
###  第三步:添加命名空间:
`xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal"` 
### 使用方法   
[数据源](#数据源)     
[NotifyIcon](#NotifyIcon)  
[Window](#Window)  
[Loading](#Loading)  
[MessageBox](#MessageBox)   
[Menu|ContextMenu](#Menu|ContextMenu)   
[Button](#Button)   
[RadioButton](#RadioButton)   
[Checkbox](#Checkbox)   
[TextBox](#TextBox)   
[PasswordBox](#PasswordBox)   
[ComboBox](#ComboBox)   
[ToggleButton](#ToggleButton)   
[DatePicker](#DatePicker)   
[Slider](#Slider)   
[ProgressBar](#ProgressBar)   
[DataGrid](#DataGrid)   
[ListBox](#ListBox)   
[ListView](#ListView)   
[TreeView](#TreeView)   
[Expander](#Expander)   
[GroupBox](#GroupBox)   
[TabControl](#TabControl)   
[GridSplitter](#GridSplitter) 
###  数据源  
1)数据源
``` C#
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using WPFDevelopers.Minimal.Sample.Models;
namespace WPFDevelopers.Minimal.Sample.ExampleViews
{
    public partial class MainView : WPFDevelopers.Minimal.Net40.Window
    {
        #region DataSource
        public ObservableCollection UserCollection
        {
            get { return (ObservableCollection)GetValue(UserCollectionProperty); }
            set { SetValue(UserCollectionProperty, value); }
        }
        public static readonly DependencyProperty UserCollectionProperty =
            DependencyProperty.Register("UserCollection", typeof(ObservableCollection), typeof(MainView), new PropertyMetadata(null));
        public bool AllSelected
        {
            get { return (bool)GetValue(AllSelectedProperty); }
            set { SetValue(AllSelectedProperty, value); }
        }
        public static readonly DependencyProperty AllSelectedProperty =
            DependencyProperty.Register("AllSelected", typeof(bool), typeof(MainView), new PropertyMetadata(AllSelectedChangedCallback));
        private static void AllSelectedChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var view = d as MainView;
            var isChecked = (bool)e.NewValue;
            if ((bool)e.NewValue)
                view.UserCollection.ToList().ForEach(y => y.IsChecked = isChecked);
            else
                view.UserCollection.ToList().ForEach(y => y.IsChecked = isChecked);
        }
        #endregion
        public MainView()
        {
            InitializeComponent();
            this.Loaded += MainView_Loaded;
        }
        private void MainView_Loaded(object sender, RoutedEventArgs e)
        {
            var time = DateTime.Now;
            UserCollection = new ObservableCollection();
            for (int i = 0; i < 4; i++)
            {
                UserCollection.Add(new UserModel
                {
                    Date = time,
                    Name = "WPFDevelopers",
                    Address = "No. 189, Grove St, Los Angeles",
                    Children = new System.Collections.Generic.List()
                    {
                         new UserModel { Name= "WPFDevelopers.Minimal1.1" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.2" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.3" },
                          new UserModel { Name= "WPFDevelopers.Minimal1.4" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.5" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.6" },
                    }
                });
                time = time.AddDays(2);
            }
        }
    }
}
```
### NotifyIcon
1)XAML
``` XML
 
                
                    
                        
                        
                        
                        
                    
                
            
```
2)CS code  
``` C#
private void Quit_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }
        private void About_Click(object sender, RoutedEventArgs e)
        {
            new AboutWindow().Show();
        }
        private void SendMessage_Click(object sender, RoutedEventArgs e)
        {
            NotifyIcon.ShowBalloonTip("Message", " Welcome to WPFDevelopers.Minimal ",NotifyIconInfoType.None);
        }
        private void Twink_Click(object sender, RoutedEventArgs e)
        {
            WpfNotifyIcon.IsTwink = !WpfNotifyIcon.IsTwink;
            menuItemTwink.IsChecked = WpfNotifyIcon.IsTwink;
        }
```
  
### Window
1)XAML  
``` XML
ws:Window x:Class="WpfApp.MainWindow"
```
2)去除.cs文件中的继承  
``` C#
public partial class MainWindow 
```

### Loading
1).cs     
``` C#
var task = new Task(() =>
{
   //Things to wait for
   Thread.Sleep(5000);
});
task.ContinueWith((previousTask) =>
{
   WPFDevelopers.Minimal.Controls.Loading.Close();
},TaskScheduler.FromCurrentSynchronizationContext());
WPFDevelopers.Minimal.Controls.Loading.Show();
task.Start();
```
2)Exit Task    
``` C#
var tokenSource = new CancellationTokenSource();
var cancellationToken = tokenSource.Token;
var task = new Task(() =>
{
  for (int i = 0; i < 5; i++)
  {
   //这里做自己的事情
    if (tokenSource.IsCancellationRequested)return;
    Thread.Sleep(1000);
  }
 }, cancellationToken);
 task.ContinueWith(previousTask =>
 {
   if (tokenSource.IsCancellationRequested)return;
  Loading.Close();
 }, TaskScheduler.FromCurrentSynchronizationContext());
 Loading.Show(true);
 Loading.LoadingQuitEvent += delegate
 {
   tokenSource.Cancel();
 };
task.Start();
```
  
### MessageBox
1).cs 使用如下    
``` C#
WPFDevelopers.Minimal.Controls.MessageBox.Show("文件删除成功。", "消息",MessageBoxButton.OK,MessageBoxImage.Information);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在!", "警告", MessageBoxImage.Warning);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在。", "错误", MessageBoxImage.Error);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在,是否继续?", "询问", MessageBoxButton.OKCancel, MessageBoxImage.Question);
```

### 
1)XAML  
``` XML
 
                    
                        
                            
                        
                    
                    
                
```

   
### Button
1)XAML  
``` XML
 
                    
                    
                    
                    
 
```

### RadioButton
1)XAML  
``` XML
 
                   
                    
                    
 
```

### Checkbox
1)XAML  
``` XML
 
                 
                 
                 
                 
 
```

### TextBox
1)XAML  
``` XML
 
                  
                    
                    
 
```

### PasswordBox
1)XAML  
``` XML
 
                
                    
                    
                     
                     
                    
                     
 
```

### ComboBox
1)XAML  
``` XML
 
              
                        Option 1
                        Option 2
                        Option 3
                        Option 4
                        Option 5
                    
 
```

### ToggleButton
1)XAML  
``` XML
 
           
                    
                    
 
```

### DatePicker
1)XAML  
``` XML
 
           
                    
                    
 
```

### Slider
1)XAML  
``` XML
 
           
                    
                    
 
```

### ProgressBar
1)XAML  
``` XML
 
   
                    
                    
 
```

### DataGrid
1)XAML Mode 1 
``` XML
 
          
                            
                                
                                    
                                
                            
                            
                                
                                
                                
                            
                        
 
```
2)XAML Mode 2 
``` XML
 
        
                            
                                
                                
                                    
                                        
                                    
                                
                                
                                    
                                        
                                    
                                
                            
                                
                                
                                
                            
                        
 
```

### ListBox
1)XAML  
``` XML
 
        
                    
                    
                        
                            
                                
                                    
                                    
                                    
                                
                            
                        
                    
 
```

### ListView
1)XAML  
``` XML
 
       
                        
                            
                                
                                
                                
                            
                        
                    
                    
                        
                            
                                
                                
                                
                            
                        
                    
 
```

### TreeView
1)XAML  
``` XML
 
       
                        
                            
                                
                                    
                                
                            
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                    
 
```

### Expander
1)XAML  
``` XML
  
                    
                        
                    
                    
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                        
                    
                
```


### GroupBox
1)XAML  
``` XML
 
      
                        
                    
                    
                        
                    
 
```

### TabControl
1)XAML  
``` XML
  
                    
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                
```

### GridSplitter
1)XAML  
``` XML
 
      
            
            
            
        
         
          
         
 
```

### Blue  
``` XAML
```
  
### Green 
``` XAML
```
 
### Red 
``` XAML
```
  
### Orange 
``` XAML
```
   
### Purple 
``` XAML
```
  
[^_^]:
          
          
          
          
          
          
          
          
        
### .Net Version
|  .Net Version   | Status  |
|  ----  | ----  |
| Net40  | ✅ |
| net45  | ✅ |
| net46  | ✅ |
| net47  | ✅ |
| net48  | ✅ |
| netcoreapp3.0  | ✅ |
| net5.0-windows  | ✅ |
| net6.0-windows  | ✅ |
# __最新请使用预览版Nuget包__
###  效果展示  
  
  
### Nuget 版本大于等于 3.2.3 效果展示
 [Blue](#Blue)     
 [Green](#Green)     
 [Red](#Red)     
 [Orange](#Orange)  
 [Purple](#Purple)  
###  第一步: 添加 nuget;
```
Install-Package WPFDevelopers.Minimal
```
###  第二步:  App.xaml中增加节点:
```xaml
       注意:从旧版升级报错时把 xmlns:ws="https://github.com/WPFDevelopersOrg.WPFDevelopers.Minimal" 
       改成xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal"
```
`    xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal" `
``` XAML
    
        
            
                
                
                
                
            
        
    
```
###  第三步:添加命名空间:
`xmlns:ws="https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal"` 
### 使用方法   
[数据源](#数据源)     
[NotifyIcon](#NotifyIcon)  
[Window](#Window)  
[Loading](#Loading)  
[MessageBox](#MessageBox)   
[Menu|ContextMenu](#Menu|ContextMenu)   
[Button](#Button)   
[RadioButton](#RadioButton)   
[Checkbox](#Checkbox)   
[TextBox](#TextBox)   
[PasswordBox](#PasswordBox)   
[ComboBox](#ComboBox)   
[ToggleButton](#ToggleButton)   
[DatePicker](#DatePicker)   
[Slider](#Slider)   
[ProgressBar](#ProgressBar)   
[DataGrid](#DataGrid)   
[ListBox](#ListBox)   
[ListView](#ListView)   
[TreeView](#TreeView)   
[Expander](#Expander)   
[GroupBox](#GroupBox)   
[TabControl](#TabControl)   
[GridSplitter](#GridSplitter) 
###  数据源  
1)数据源
``` C#
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using WPFDevelopers.Minimal.Sample.Models;
namespace WPFDevelopers.Minimal.Sample.ExampleViews
{
    public partial class MainView : WPFDevelopers.Minimal.Net40.Window
    {
        #region DataSource
        public ObservableCollection UserCollection
        {
            get { return (ObservableCollection)GetValue(UserCollectionProperty); }
            set { SetValue(UserCollectionProperty, value); }
        }
        public static readonly DependencyProperty UserCollectionProperty =
            DependencyProperty.Register("UserCollection", typeof(ObservableCollection), typeof(MainView), new PropertyMetadata(null));
        public bool AllSelected
        {
            get { return (bool)GetValue(AllSelectedProperty); }
            set { SetValue(AllSelectedProperty, value); }
        }
        public static readonly DependencyProperty AllSelectedProperty =
            DependencyProperty.Register("AllSelected", typeof(bool), typeof(MainView), new PropertyMetadata(AllSelectedChangedCallback));
        private static void AllSelectedChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var view = d as MainView;
            var isChecked = (bool)e.NewValue;
            if ((bool)e.NewValue)
                view.UserCollection.ToList().ForEach(y => y.IsChecked = isChecked);
            else
                view.UserCollection.ToList().ForEach(y => y.IsChecked = isChecked);
        }
        #endregion
        public MainView()
        {
            InitializeComponent();
            this.Loaded += MainView_Loaded;
        }
        private void MainView_Loaded(object sender, RoutedEventArgs e)
        {
            var time = DateTime.Now;
            UserCollection = new ObservableCollection();
            for (int i = 0; i < 4; i++)
            {
                UserCollection.Add(new UserModel
                {
                    Date = time,
                    Name = "WPFDevelopers",
                    Address = "No. 189, Grove St, Los Angeles",
                    Children = new System.Collections.Generic.List()
                    {
                         new UserModel { Name= "WPFDevelopers.Minimal1.1" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.2" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.3" },
                          new UserModel { Name= "WPFDevelopers.Minimal1.4" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.5" },
                         new UserModel { Name = "WPFDevelopers.Minimal1.6" },
                    }
                });
                time = time.AddDays(2);
            }
        }
    }
}
```
### NotifyIcon
1)XAML
``` XML
 
                
                    
                        
                        
                        
                        
                    
                
            
```
2)CS code  
``` C#
private void Quit_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }
        private void About_Click(object sender, RoutedEventArgs e)
        {
            new AboutWindow().Show();
        }
        private void SendMessage_Click(object sender, RoutedEventArgs e)
        {
            NotifyIcon.ShowBalloonTip("Message", " Welcome to WPFDevelopers.Minimal ",NotifyIconInfoType.None);
        }
        private void Twink_Click(object sender, RoutedEventArgs e)
        {
            WpfNotifyIcon.IsTwink = !WpfNotifyIcon.IsTwink;
            menuItemTwink.IsChecked = WpfNotifyIcon.IsTwink;
        }
```
  
### Window
1)XAML  
``` XML
ws:Window x:Class="WpfApp.MainWindow"
```
2)去除.cs文件中的继承  
``` C#
public partial class MainWindow 
```

### Loading
1).cs     
``` C#
var task = new Task(() =>
{
   //Things to wait for
   Thread.Sleep(5000);
});
task.ContinueWith((previousTask) =>
{
   WPFDevelopers.Minimal.Controls.Loading.Close();
},TaskScheduler.FromCurrentSynchronizationContext());
WPFDevelopers.Minimal.Controls.Loading.Show();
task.Start();
```
2)Exit Task    
``` C#
var tokenSource = new CancellationTokenSource();
var cancellationToken = tokenSource.Token;
var task = new Task(() =>
{
  for (int i = 0; i < 5; i++)
  {
   //这里做自己的事情
    if (tokenSource.IsCancellationRequested)return;
    Thread.Sleep(1000);
  }
 }, cancellationToken);
 task.ContinueWith(previousTask =>
 {
   if (tokenSource.IsCancellationRequested)return;
  Loading.Close();
 }, TaskScheduler.FromCurrentSynchronizationContext());
 Loading.Show(true);
 Loading.LoadingQuitEvent += delegate
 {
   tokenSource.Cancel();
 };
task.Start();
```
  
### MessageBox
1).cs 使用如下    
``` C#
WPFDevelopers.Minimal.Controls.MessageBox.Show("文件删除成功。", "消息",MessageBoxButton.OK,MessageBoxImage.Information);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在!", "警告", MessageBoxImage.Warning);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在。", "错误", MessageBoxImage.Error);
WPFDevelopers.Minimal.Controls.MessageBox.Show("当前文件不存在,是否继续?", "询问", MessageBoxButton.OKCancel, MessageBoxImage.Question);
```

### 
1)XAML  
``` XML
 
                    
                        
                            
                        
                    
                    
                
```

   
### Button
1)XAML  
``` XML
 
                    
                    
                    
                    
 
```

### RadioButton
1)XAML  
``` XML
 
                   
                    
                    
 
```

### Checkbox
1)XAML  
``` XML
 
                 
                 
                 
                 
 
```

### TextBox
1)XAML  
``` XML
 
                  
                    
                    
 
```

### PasswordBox
1)XAML  
``` XML
 
                
                    
                    
                     
                     
                    
                     
 
```

### ComboBox
1)XAML  
``` XML
 
              
                        Option 1
                        Option 2
                        Option 3
                        Option 4
                        Option 5
                    
 
```

### ToggleButton
1)XAML  
``` XML
 
           
                    
                    
 
```

### DatePicker
1)XAML  
``` XML
 
           
                    
                    
 
```

### Slider
1)XAML  
``` XML
 
           
                    
                    
 
```

### ProgressBar
1)XAML  
``` XML
 
   
                    
                    
 
```

### DataGrid
1)XAML Mode 1 
``` XML
 
          
                            
                                
                                    
                                
                            
                            
                                
                                
                                
                            
                        
 
```
2)XAML Mode 2 
``` XML
 
        
                            
                                
                                
                                    
                                        
                                    
                                
                                
                                    
                                        
                                    
                                
                            
                                
                                
                                
                            
                        
 
```

### ListBox
1)XAML  
``` XML
 
        
                    
                    
                        
                            
                                
                                    
                                    
                                    
                                
                            
                        
                    
 
```

### ListView
1)XAML  
``` XML
 
       
                        
                            
                                
                                
                                
                            
                        
                    
                    
                        
                            
                                
                                
                                
                            
                        
                    
 
```

### TreeView
1)XAML  
``` XML
 
       
                        
                            
                                
                                    
                                
                            
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                    
 
```

### Expander
1)XAML  
``` XML
  
                    
                        
                    
                    
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                        
                    
                    
                        
                            
                                
                                    
                                
                            
                        
                        
                    
                
```


### GroupBox
1)XAML  
``` XML
 
      
                        
                    
                    
                        
                    
 
```

### TabControl
1)XAML  
``` XML
  
                    
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                
```

### GridSplitter
1)XAML  
``` XML
 
      
            
            
            
        
         
          
         
 
```

### Blue  
``` XAML
```
  
### Green 
``` XAML
```
 
### Red 
``` XAML
```
  
### Orange 
``` XAML
```
   
### Purple 
``` XAML
```
  
[^_^]:
          
          
          
          
          
          
          
          
        