- 博客(229)
- 资源 (15)
- 收藏
- 关注
原创 新书速递,手把手教你WPF入门与开发
本文作者分享了自己从写博客到出版WPF技术书籍的历程。文章首先回顾了知识获取方式的变迁,从传统阅读到网络学习。作者讲述了自己如何从技术博客写作起步,逐步积累经验并获得读者认可,最终在出版社邀约下完成专业书籍的创作过程。书中系统介绍了WPF开发技术及其应用前景,强调WPF在工业4.0时代的重要价值。作者坦言写作过程中的艰辛与自我突破,希望本书能为WPF学习者提供帮助,并欢迎读者提出改进建议。
2026-01-17 16:40:37
614
6
原创 基于.NET的Windows窗体编程之WinForms音频控件
本文介绍了在.NET Windows窗体应用中使用音频功能的方法,重点讲解了SoundPlayer和SystemSounds两个核心组件。SoundPlayer控件用于播放WAV格式音频文件,支持同步/异步加载、循环播放和停止功能,需要手动创建并处理相关事件。SystemSounds则提供5种预定义系统提示音。文章还提供了将MP3转换为WAV格式的实用方法(使用NAudio库),并附有完整示例代码的获取途径。这些音频功能可有效增强应用的用户交互体验。
2026-08-20 12:00:00
203
原创 基于.NET的Windows窗体编程之WinForms图像控件
本文介绍了.NET Windows窗体开发中两种常用图像控件的使用方法。PictureBox控件支持显示多种格式图像,可通过Image或ImageLocation属性加载图片,并设置SizeMode调整显示模式(Normal、CenterImage、AutoSize、StretchImage)。ImageList组件用于存储图像集合,可配合其他控件使用,支持通过索引或键值管理图片,并能统一设置图像尺寸和颜色深度。文章通过示例代码展示了动态加载图片、切换显示、释放资源等关键操作,并强调了窗体关闭时需手动释放图
2026-07-06 12:00:00
300
原创 基于.NET的Windows窗体编程之WinForms提示控件
本文介绍了WinForms开发中三种常用提示控件的使用方法:1. ToolTip控件(鼠标悬停时显示文本提示,可设置延迟、动画效果等属性);2. NotifyIcon控件(在任务栏通知区域显示图标,支持气泡提示和双击事件);3. ErrorProvider控件(以非干扰方式验证并提示输入错误)。文章通过示例代码演示了各控件的关键属性和事件设置方法,包括工具提示的延迟配置、通知图标的最小化处理以及输入验证的错误提示实现。这些技巧可帮助开发者在保持界面简洁的同时提供必要的用户交互提示。
2026-06-29 12:00:00
264
原创 基于.NET的Windows窗体编程之WinForms时间控件
本文介绍了.NET Windows窗体开发中常用的时间相关控件,包括DateTimePicker(日期时间选择器)、MonthCalendar(月历控件)、ProgressBar(进度条)、Timer(定时器)和BackgroundWorker(后台工作器)。文章详细说明了各控件的关键属性、事件和使用方法,并提供了简单的代码示例演示如何实现日期选择、进度显示、定时更新和异步任务处理等功能。这些控件可以帮助开发人员创建更友好的用户界面,处理时间相关操作和后台任务,避免UI线程阻塞问题。文章适合初学者学习Win
2026-06-22 12:00:00
308
原创 基于.NET的Windows窗体编程之WinForms图表控件
本文介绍了在.NET Windows窗体程序中使用Chart控件绘制常见图表的方法。文章首先说明Chart控件位于System.Windows.Forms.DataVisualization.Charting命名空间,支持折线图、柱状图、饼图等多种图表类型。然后通过代码示例详细演示了四种典型图表的实现:折线图(SeriesChartType.Line)展示数据趋势,柱状图(SeriesChartType.Column)比较数据大小,饼图(SeriesChartType.Pie)显示占比关系,以及样条图(Se
2026-06-15 12:00:00
240
原创 基于.NET的Windows窗体编程之WinForms输入与显示
本文介绍了Windows窗体开发中常用的文本输入与显示控件,包括Label、TextBox、MaskedTextBox、LinkLabel和RichTextBox。重点讲解了Label控件的访问键设置、TextBox的密码输入功能、MaskedTextBox的掩码验证,以及RichTextBox的富文本编辑功能(如字体样式、对齐方式、插入图片等)。通过具体示例演示了各控件的关键属性和事件处理,展示了如何实现文本输入、格式设置和验证等功能。文章旨在帮助开发者掌握WinForms中文本处理的基本技巧,提升用户界
2026-06-08 12:00:00
282
原创 基于.NET的Windows窗体编程之WinForms菜单工具栏
本文介绍了基于.NET的Windows窗体编程中常见的界面组件使用方法。主要内容包括:MenuStrip菜单栏的创建与配置,支持多级子菜单和快捷键设置;ToolStrip工具栏的添加与标准项插入,可自定义图标和显示样式;ContextMenuStrip右键上下文菜单的绑定与应用;StatusStrip状态栏的四种控件类型及使用方式;以及MDI多文档界面的实现,包括子窗体管理、窗口布局控制和任务菜单集成。文章通过实例演示了这些基础组件的配置过程,为Windows窗体开发提供了实用参考。
2026-05-31 12:00:00
220
原创 基于.NET的Windows窗体编程之WinForms打印
本文介绍了在.NET Windows窗体编程中实现打印功能的常用方法。通过PrintDocument、PrintDialog、PrintPreviewDialog等组件,详细讲解了打印功能的设计与实现。文章以"录取通知书"打印为例,展示了从UI布局、打印逻辑编写到预览和打印设置的全过程,包括页面初始化、图形绘制、打印对话框配置等关键步骤。示例代码演示了如何结合多个打印组件完成完整的打印功能,并提供了毫米与英寸单位转换等实用技巧。该方案适用于需要保留纸质凭证的场景,为WinForms开发者
2026-05-24 12:00:00
674
原创 基于.NET的Windows窗体编程之WinForms对话框
本文介绍了.NET Windows窗体编程中常用的五种对话框组件:ColorDialog(颜色选择)、FontDialog(字体选择)、OpenFileDialog(文件打开)、SaveFileDialog(文件保存)和FolderBrowserDialog(文件夹浏览)。文章详细说明了每个对话框的关键属性和使用方法,并提供了具体代码示例展示如何实现颜色设置、字体选择、文件读写和文件夹选择等功能。这些预配置对话框组件简化了Windows应用程序开发,通过标准化的用户界面提升了用户体验。
2026-05-17 12:00:00
528
原创 基于.NET的Windows窗体编程之WinForms列表控件
列表控件,主要是用于列出选项的 Windows 窗体控件,如果要向用户提供可供选择的选项列表,则可以向 Windows 窗体添加各种列表控件。ComboBox,下拉列表组合框,它显示两个部分:顶部部分是一个文本框,允许用户键入列表项。第二部分是一个列表框,它显示可以从中选择一个项的列表。ListBox,列表框,此控件显示一个列表,可以从中选择一个或多个项。
2026-05-09 12:00:00
567
原创 基于.NET的Windows窗体编程之WinForms数据表格
本文介绍了在.NET Windows窗体应用中使用DataGridView控件进行数据展示的方法。文章首先概述了DataGridView作为WinForms中主要数据表格控件的优势,包括其灵活的数据绑定能力和丰富的自定义选项。然后详细讲解了DataGridView与BindingSource组件的结合使用,包括数据绑定、列编辑和样式设置等关键操作。通过一个学生信息管理的实际案例,演示了如何构建数据源、设置UI布局、处理数据格式(如日期和布尔值转换)以及实现交替行背景色等常见功能。文章最后总结了通过属性设置和
2026-04-20 23:20:49
684
原创 基于.NET的Windows窗体编程之WinForms事件简介
本文介绍了.NET中Windows窗体编程的事件处理机制。文章首先阐述了事件作为程序与用户交互桥梁的核心作用,解释了事件的基本概念和委托模型。随后详细分类了常见事件类型,包括鼠标事件、键盘事件和属性变更事件,并说明了窗体事件触发的顺序。文中还讲解了Windows窗体坐标系系统,区分了屏幕坐标和客户端坐标。最后通过按钮点击事件的实例演示了事件处理的具体实现步骤,包括添加控件、设置属性和编写事件处理代码。全文系统性地介绍了Windows窗体事件编程的关键知识点,为开发者提供了实用的技术参考。
2026-04-13 12:00:00
537
原创 基于.NET的Windows窗体编程之WinForms布局简介
本文介绍了WinForms编程中常用的布局容器控件,包括Panel、GroupBox、SplitContainer、TabControl、FlowLayoutPanel和TableLayoutPanel。这些容器控件能够有效组织界面元素,实现视觉分组、程序化分组和便捷移动。文章详细讲解了各控件的关键属性和使用方法,如GroupBox的标题分组功能、Panel的滚动条设置、SplitContainer的可调整分隔、TabControl的多标签页管理,以及FlowLayoutPanel和TableLayoutP
2026-04-05 19:22:16
550
原创 基于.NET的Windows窗体编程之WinForms控件简介
本文介绍了.NET中Windows窗体编程的控件使用,包括控件概述、添加方法、分类及布局方式。控件是构建用户界面的重要组件,分为基础控件、容器控件、菜单工具栏等类别。文章详细说明了通过拖动、双击、绘图和代码四种方式添加控件,并讲解了控件布局中的停靠(Dock)和锚点(Anchor)等关键概念。这些控件技术能有效搭建程序与用户的交互界面,提高开发效率。
2026-03-29 12:00:00
629
原创 基于.NET的Windows窗体编程之WinForms入门简介
摘要:本文介绍了基于.NET的Windows窗体编程(WinForms)的入门知识。从计算机图形界面发展的历史背景切入,重点讲解了使用Visual Studio创建WinForms应用程序的步骤,包括项目创建、窗体设计、属性设置和事件处理等核心内容。文章详细说明了窗体控件的添加方法、常见属性和事件的使用,并演示了如何运行调试程序。通过"Hello World"示例,为读者提供了WinForms开发的入门指导,旨在帮助初学者快速掌握.NET桌面应用开发的基础知识。
2026-03-24 12:00:00
596
原创 推荐一款基于.NET和百度飞桨的OCR识别组件
摘要:本文介绍了基于百度飞桨PaddleOCR的.NET封装组件PaddleOCRSharp的应用方法。通过WinForm实例演示了如何实现图像文字识别功能,包括组件安装、核心代码实现及识别效果展示。文章指出OCR技术在多个领域的广泛应用前景,同时强调实际应用中需结合图像预处理技术以提高识别准确率。该组件支持离线识别,具有高效便捷的特点,为.NET开发者提供了强大的OCR解决方案。
2026-01-20 12:00:00
818
原创 推荐一种并发线程中资源同步常用方法
摘要:本文介绍了在.NET开发中使用信号量(Semaphore)控制多线程并发访问临界资源的方法。信号量通过计数器机制确保线程有序使用共享资源,包含等待和释放操作。文章对比了两种实现方式:Semaphore(内核级,支持跨进程)和SemaphoreSlim(用户级,性能更高)。通过代码示例演示了如何创建信号量、限制并发访问数量,并展示了命名信号量的跨进程应用场景。最后指出SemaphoreSlim是单进程场景下的最佳选择,为开发人员提供了线程同步的实用解决方案。
2025-12-14 21:47:43
930
原创 推荐一种手动设置异步线程等待机制的解决方案
本文介绍了在.NET开发中使用TaskCompletionSource手动控制异步任务结果的解决方案。TaskCompletionSource允许开发者通过SetResult、SetCanceled和SetException方法(及其TrySet版本)显式设置任务完成状态,分别对应成功、取消和异常三种情况。文章通过图像分析的示例场景,展示了如何创建异步任务并等待TaskCompletionSource的结果,包括正常返回、取消和异常处理三种状态的实现代码。这种机制特别适用于需要将事件驱动或回调模式转换为as
2025-12-01 22:47:36
779
原创 推荐一种异步线程执行过程中更新进度的方法
本文介绍了在.NET中使用IProgress接口实现异步任务进度更新的方法。IProgress<T>和Progress<T>类提供了Report方法用于上报进度,构造函数接收进度更新的委托。文章通过示例展示了如何创建耗时任务的Execute方法,使用Progress<T>实例绑定UI更新方法RefreshUI,实现在后台任务执行过程中实时更新进度条和状态信息。这种方法有效避免了UI卡顿,为用户提供了清晰的任务执行进度反馈,适用于需要显示详细进度的异步操作场景。
2025-11-10 12:00:00
696
原创 推荐一款基于.NET的进程间数据交互经典解决方案
本文介绍了.NET中两种进程间通信(IPC)的管道技术:匿名管道和命名管道。匿名管道通过AnonymousPipeServerStream/AnonymousPipeClientStream实现,仅支持本地父子进程间单向通信。命名管道通过NamedPipeServerStream/NamedPipeClientStream实现,支持跨进程、网络通信和双向数据传输,功能更强大。文章分别提供了匿名管道和命名管道的C#实现示例,包括服务端和客户端的代码结构、数据收发处理方式,并展示了实际运行效果。两种方案各有适用
2025-10-09 12:00:00
800
原创 推荐一款线程or进程间数据同步解决方案
本文介绍了使用C#中的EventWaitHandle类实现线程和进程间数据同步的解决方案。文章首先解释了同步的必要性,指出在多线程/进程编程中,临界资源需要有序访问以避免数据错乱。然后详细讲解了EventWaitHandle的两种模式(AutoReset和ManualReset)及其派生类AutoResetEvent和ManualResetEvent的特性与使用场景,并通过代码示例演示了它们的实际应用。最后,文章介绍了如何通过命名事件实现进程间同步,并给出了跨进程同步的完整示例。全文提供了多个可视化演示,帮
2025-09-10 12:00:00
1582
原创 推荐一款代码规范检查(CodeReview)神器
本文介绍了代码规范检查工具StyleCop.Analyzers及其在C#项目中的应用。该工具通过200多个预定义规则检查代码风格、质量和可维护性,帮助团队统一编码规范。文章详细说明了工具的安装方法、规则分类(包括文档、缩进、间距、命名等规则),以及通过stylecop.json文件配置规则的方式。同时介绍了如何将规则文件共享给多个项目使用,实现统一管理。StyleCop.Analyzers能实时提示不规范代码,提高代码审查效率,特别适合多人协作项目中保持代码风格一致。
2025-08-29 08:00:00
929
原创 推荐一款高性能状态机管理解决方案
本文介绍了在工业软件开发中管理复杂设备状态的解决方案,重点推荐了Stateless状态机库。文章首先阐述了状态模式和状态机的概念,然后通过一个设备状态管理的实例场景(Idle、Running、Malfunction、Recovery四种状态)详细演示了如何利用Stateless组件实现状态转换逻辑。通过定义状态枚举、触发器枚举和状态机服务类,实现了设备状态的有序管理。文章还展示了WinForm应用界面的实现,包括状态显示、工作流程控制和异常模拟等功能。Stateless作为一个轻量级、高性能的.NET状态机
2025-08-15 22:29:36
967
原创 推荐一款进程间高速交换数据的解决方案
本文介绍了进程间高效数据交互的解决方案——共享内存技术。针对同一服务器进程间通信场景,相比RPC远程调用,共享内存通过MemoryMappedFile实现物理内存共享,避免了网络传输开销。文章详细讲解了.NET平台中共享内存的实现方式,包括创建/打开内存映射文件、使用MemoryMappedViewAccessor进行读写操作,并提供了两种典型应用案例:1)不定长图片数据的字节数组传输,通过自定义ImageData实体实现图片与字节流转换;2)固定长度结构体传输,利用Marshal进行内存指针操作实现结构体
2025-08-03 12:00:00
841
原创 推荐一款基于.NET的进程间通信框架
在Windows操作系统中,每一个应用程序都是相互独立的,它们拥有独立的内存空间,各个应用程序之间形成一道边界,不能互相访问和操作,这是操作系统为了保护应用程序的安全而设计的。这种看似“井水不犯河水”的设计同样有它的弊端,假如两个应用程序需要相互协作配合才能完成工作,那它们就需要进行通信和数据交互,今天以一个简单的小例子,简述一种基于.NET的进程间通信的方案Remoting技术,仅供学习分享使用,如有不足之处,还请指正。
2025-07-20 11:18:41
1154
2
原创 推荐一款基于EF-Core的分库分表利器
本文介绍了在数据量大的场景下如何通过ShardingCore组件实现ASP.NET Core WebAPI程序的分库分表。针对传统索引和SQL优化方案效果有限的问题,文章提出采用ShardingCore这一基于EF Core的轻量级解决方案。主要内容包括:1) 开发环境配置;2) 订单模型设计;3) 实现分表路由(按月分表)和分库路由(按年分库);4) 启动项配置和数据库连接设置;5) 通过控制器测试数据插入。最终实现了按年分库、按月分表的功能,有效解决了大数据量带来的性能问题。该方法比传统优化方案更具扩展
2025-06-24 12:00:00
1282
原创 推荐一种程序崩溃闪退或卡死的分析方法
摘要:本文介绍了在Windows系统中通过生成dump文件来分析程序崩溃闪退问题的方法。通过注册表配置Windows错误报告(WER)可自动生成包含内存状态、堆栈跟踪等信息的dump文件。演示了如何设置dump文件保存路径、类型和数量,并在Visual Studio中分析dump文件以定位崩溃原因。该方法适用于简单异常分析,复杂问题需使用WinDbg等专业工具。文章通过一个WinForm程序除零异常的实例,说明了从配置到分析dump文件的完整流程,为处理程序崩溃问题提供了实用解决方案。
2025-06-11 12:00:00
1435
原创 推荐一款Excel读写神器之MiniExcel入门详解
MiniExcel是.Net基金会旗下的项目,是一款简单、高效避免OOM(Out of Memory)的.NET处理Excel查、写、填充数据工具。
2025-04-29 12:00:00
1492
原创 推荐一款Ioc容器之Ninject入门详解
随着软件的不断发展,功能越来越复杂,为了将复杂的逻辑简单化,解耦成了架构师,工程师们经常提起的话题,今天我们就以一个简单的小例子,来看一下解耦的好处,顺便介绍一款Ioc容器Ninject的应用,仅供学习分享使用,如有不足之处,还请指正。
2025-04-08 12:00:00
1136
原创 ASP.NET Core WebApi+React UI开发入门详解
在前段时间,有粉丝反馈能否写一篇基于ASP.NET Core Web Api+React UI进行Web开发的文章,经过查阅相关资料,发现Visual Studio 2022已经集成相关模板,可以在Visual Studio中直接创建项目项目,今天以一个小例子,简述ASP.NET Core Web Api+React UI开发系统的基本步骤,仅供学习分享使用,如有不足之处,还请指正。
2025-03-25 00:55:54
1062
原创 Avalonia系列文章之样式与主题2
在前一篇文章中,简述了Avalonia UI中样式和主题的简单用法,今天继续深入讲解样式的选择器语法以及内置主题等相关内容,仅供学习分享使用,如有不足之处,还请指正。
2025-02-26 11:00:00
1443
原创 Avalonia系列文章之样式与主题
Avalonia UI中的样式是一种可以在控件之间共享属性设置的机制。与WPF中的样式不同,Avalonia UI中的样式设置借鉴了B/S开发中的CSS样式理念;不过Avalonia UI引入了主题(ControlTheme)和WPF中的样式相对应。当给UI控件设置样式时,样式系统从控件开始沿着逻辑树向上搜索,直到应用程序的最高级别(App.axaml)。如果样式系统匹配到控件设置的样式时,则根据样式中的设置器互进行更改。
2025-02-20 12:00:00
2634
原创 Avalonia系列文章之布局简介
在UI设计中,页面布局非常重要,良好的布局不仅可以有效的利用空间,还能提升交互体验,以达到事半功倍的效果。所以对于Avalonia UI初学者来说,布局控件的了解与学习也非常的重要,今天以一些小例子,简述Avalonia UI框架中布局控件的使用,仅供学习分享使用,如有不足之处,还请指正。
2025-02-10 22:23:16
1914
原创 Avalonia系列文章之控件简介
在图形用户页面出现之前,程序的输入输出都是通过命令行进行,输入输出的数据都是最原始的方式。在图形用户页面出现以后,输入输出变得越来越友好,且丰富多样,不仅可以输出格式化表格,图表,以及图像等形式,还能接受用户的输入指令,而这些输入输出都是通过控件实现的。按钮(Button),按钮常用于在单击或触摸时触发操作。它们可以包含文本、图标或两者,并经常用于提交表单、打开对话框或执行命令等任务。文本框(TextBox),文本框允许用户输入和编辑文本。它们用于捕获用户输入,例如用户名、密码或任何形式的文本信息。
2025-02-06 14:15:49
1723
原创 Avalonia系列文章之再试牛刀
通过前一篇文章,已经了解了AvaloniaUI的环境安装以及项目创建,磨刀不误砍柴工,今天继续进行Avalonia基础知识学习,如有不足之处,还请指正。
2025-01-25 12:00:00
1336
原创 Avalonia系列文章之小试牛刀
Avalonia是一款开源的跨平台UI框架,它是.NET基金会的一部分,专为创建灵活且美观的用户界面而设计。Avalonia支持多种应用程序开发平台,包括Windows、Linux、macOS、iOS、Android和WebAssembly。同时Avalonia基于现代.NET技术栈,后台允许采用C#或其他.NET语言编写代码,UI页面采用XAML语言,同样兼容WPF的样式系统,布局系统和绑定基础设施模型,之前学习WPF的同学可以无缝衔接,几乎是零成本学习。
2025-01-18 00:51:19
1419
原创 WinForm之MDI窗体开发详解
在WinForm开发中,如果有多个页面进行展示,通常采用菜单栏+容器布局方式(点击菜单栏,打开新的页面,并在容器中显示)。今天以一个简单的小例子,简述如何通过菜单栏和MDI容器实现页面的布局,仅供学习分享使用,如有不足之处,还请指正。
2025-01-07 23:06:59
1651
原创 进程间通信组件ZeroMQ详解
在一些复杂的项目中,往往会由不同功能的程序组成,且在程序运行期间,各个程序还需要进行互相通信,实现进程间通信的方式有很多种,最常用的就是通过消息中间件,比如RabbitMQ,Kafka,以及ZeroMQ等,而RabbitMQ和Kafka这两款中间件往往都需要独立安装步骤才能使用,ZeroMQ却不需要独立安装部署,而是作为动态库直接在程序中引用即可。今天以一个简单的小例子,简述ZeroMQ的常见用法,仅供学习分享使用,如有不足之处,还请指正。
2024-12-30 12:00:00
1994
原创 WPF开发框架Caliburn.Micro详解
MVVM 代表 Model、View、View Model。基本思想是创建一个三层用户界面。它的主要用途是将 UI 的可视部分(表单、按钮和其他控件)尽可能与处理 UI 命令的逻辑分开。对于 WPF 应用程序,视图由 XAML 代码和代码隐藏表示,这实质上是用 C# 编写 XAML 代码的方法。此层不应执行任何处理。View Model 是功能性 UI 层,它接受来自 UI 的命令并处理这些命令。第三层是 Model,它保存数据模型。
2024-12-16 12:00:00
1887
WPF+ASP.NET SignalR实现在线聊天和后台通知功能
2022-09-14
VUE3.0+Antdv+Asp.net webapi学生信息管理系统
2022-08-30
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】
2022-06-05
ASP.NET Core开发学生信息管理系统
2022-01-22
Abp框架示例【ASP.NET Boilerplate Project】
2022-01-03
PythonChart.rar
2021-08-04
基于.NET8.0的利用Stateless开源库实现的状态机实例
2025-08-15
基于.NET的Remoting技术的进程间通信框架实例
2025-08-02
基于.NET内存映射文件技术的高速数据交换实例
2025-08-02
基于WPF开发的视频播放器
2024-11-17
基于WPF+Sqlite开发抽奖软件
2024-05-22
C#+WinForm+FluentFTP实现文件上传下载功能实例
2024-04-29
WPF之绑定数据校验和类型转换实例
2024-03-04
WinForm+RichTextBox实现文本编辑器
2024-02-28
WPF之DataGrid动态生成列实例
2024-02-22
WPF+RichTextBox实现富文本编辑器
2024-02-18
.Net Core开发五大案例详解PDF
2024-01-04
WPF+DataGrid仿Excel筛选功能实例
2023-12-06
C#软件Licence应用实例
2023-09-03
ASP.NET Core MVC + SQL Server + 商城系统
2023-08-27
Html利用Canvas绘制图形
2023-07-16
ASP.NET Core MVC从入门到精通系列文章PDF版
2023-06-30
ASP.NET Core Web API之Token验证
2023-06-26
.Net+WPF绘制地铁路线图
2023-06-01
ASP.NET Core MVC + SQL Server 2012 + Element UI 校园图书管理系统
2023-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅