WPF(5)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

 

posted @   ~沐风  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示