WPF(2)UI

序言

要想实现复用性高的按钮,就必须新建自定义控件。

WPF仿网易云音乐系列

https://www.cnblogs.com/xytx/p/9257862.html

https://www.bilibili.com/video/av75126785/

WPF 装饰器(Adorner)

https://blog.csdn.net/qq_43024228/article/details/110454081

https://github.com/944095635/DMSkin-CloudMusic

Chat UI Wpf

 
WPF定时刷新UI界面
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Visifire.Charts;

namespace SunCreate.CombatPlatform.Client
{
    public partial class MainPage : UserControl
    {
        private System.Timers.Timer timerNotice = null;

        public MainPage()
        {
            InitializeComponent();
        }

        private void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            #region 通知公告
            if (timerNotice == null)
            {
                BindNotice();

                timerNotice = new System.Timers.Timer();
                timerNotice.Elapsed += new System.Timers.ElapsedEventHandler((o, eea) =>
                {
                    BindNotice();
                });
                timerNotice.Interval = 60 * 1000;
                timerNotice.Start();
            }
            #endregion
        }

        private void MainPage_SizeChanged(object sender, SizeChangedEventArgs e)
        {

        }

        #region 绑定通知公告
        private void BindNotice()
        {
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                try
                {
                    int total = 0;
                    TES_NOTICE info = new TES_NOTICE();
                    IList<TES_NOTICE> list = new List<TES_NOTICE>();

                    list = HI.Get<INoticeService>().GetListPage(null, DateTime.MinValue, DateTime.MinValue, 1, 50, ref total);

                    Dispatcher.Invoke(new Action(() =>
                    {
                        noticeListView.ItemsSource = list;
                    }));
                }
                catch
                {

                }
            });
        }
        #endregion

    }
}
View Code

开源项目

 
 
 
 
 

资料

微软技术教程

WPF界面设计教程之【网易云音乐】

WPF UI设计的源代码区

https://www.cnblogs.com/tsliwei/category/844319.html

WPF模仿网易云

WPF自定义控件与样式

WPF开源项目整理

DMSkin

如果是项目上使用,推荐其他开比较成熟的源wpf控件,如:

https://github.com/HandyOrg/HandyControl

https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

.NET Core/.NET5/.NET6 开源项目汇总11:WPF组件库1

原文地址:https://www.cnblogs.com/cnki/p/14774626.html