跟着丑萌气质狗学习WPF——图书馆程序

1. 图书馆程序(自行设计)

1.1 界面图片

  • 用户名:WPF
  • 密码:666
  • 如果用户名或密码不正确则弹窗报错,然后用户名和密码会被自动清空;
  • 如果用户名和密码都正确,点击登录,则会隐藏当前窗口,弹出书单列表窗口;
    • 使用到 属性与界面绑定 技术。
      在这里插入图片描述
      在这里插入图片描述

1.2 界面代码

  • 登录界面
<Window x:Class="LibraryLog.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LibraryLog"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="惠州市图书馆"  Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" FontSize="20" Margin="10"/>
        <StackPanel Grid.Row="1" Background="LightSkyBlue">
            <TextBlock Text="登录" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" FontSize="25" Margin="10"/>
        </StackPanel>

        <Grid Grid.Row="3" HorizontalAlignment="Center">
            <Grid.RowDefinitions>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="用户名" Grid.Row="0" Grid.Column="0" FontSize="20" Margin="10"/>
            <TextBlock Text="密码" Grid.Row="1" Grid.Column="0" FontSize="20" Margin="10"/>
            <CheckBox Content="记住密码"  Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" FontSize="16" Margin="10"/>
            <Button Content="登录" Click="Button_Click" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Width="280" Height="40" FontSize="20" Margin="10"/>
            <TextBox Text="{Binding UserName}" Grid.Row="0" Grid.Column="1" FontSize="20" Margin="10" Width="200"/>
            <TextBox Text="{Binding Password}" Grid.Row="1" Grid.Column="1" FontSize="20" Margin="10" Width="200"/>
        </Grid>
    </Grid>
</Window>

  • 书单列表界面
<Window x:Class="LibraryLog.Index"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LibraryLog"
        mc:Ignorable="d"
        Title="Index" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <ListBoxItem Content="《学习C#》" Grid.Row="0"/>
        <ListBoxItem Content="《学习Python》"  Grid.Row="1"/>
        <ListBoxItem Content="《深度学习》"  Grid.Row="2"/>
        <ListBoxItem Content="《多模态大模型》"  Grid.Row="3"/>
    </Grid>
</Window>

1.3 C#代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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;

namespace LibraryLog
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window, INotifyPropertyChanged
    {
        public MainWindow()
        {
            InitializeComponent();

            this.DataContext = this;
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }

        private string _UserName;
        public string UserName
        {
            get
            {
                return _UserName;
            }
            set
            {
                _UserName = value;
                RaisePropertyChanged("UserName");
            }
        }
        private string _Password;
        public string Password
        {
            get
            {
                return _Password;
            }
            set
            {
                _Password = value;
                RaisePropertyChanged("Password");
            }
        }
        
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (UserName == "WPF" && Password == "666")
            {
                Index idx = new Index();
                idx.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("用户名或密码不正确!");
                Password = "";
                UserName = "";
            }   
        }
    }
}

2. 图书馆程序(MVVM)

2.0 MVVM简介(来自文心一言)

MVVM(Model-View-ViewModel)是一种软件架构设计模式,用于构建用户界面。它特别适用于开发复杂的单页面应用程序(SPA),如现代Web应用和移动应用。MVVM 架构将应用程序分为三个核心部分:Model(模型)、View(视图)和 ViewModel(视图模型),它们各自承担不同的职责,并通过特定的方式相互通信。

1. Model(模型)

  • 职责:表示数据以及业务逻辑(或业务规则)。它负责管理应用程序的数据,包括数据的验证和修改等。
  • 特点:通常是纯粹的数据对象,不包含任何与界面相关的逻辑。

2. View(视图)

  • 职责:负责展示用户界面。它使用数据来渲染视图,并将用户交互通知给 ViewModel。
  • 特点:通常是HTML、XAML等标记语言或模板文件,也可能是渲染引擎生成的界面。

3. ViewModel(视图模型)

  • 职责:作为Model和View之间的桥梁,它负责将Model的数据转换为View可以展示的格式,同时也负责将用户的输入和操作转换为Model可以理解的数据。ViewModel通常还包含命令(Commands)和数据绑定(Data Binding)的逻辑。
  • 特点:它封装了与界面交互的逻辑,使得Model可以独立于界面而存在,便于测试和重用。

4. MVVM的优势

  1. 低耦合:Model、View和ViewModel之间相对独立,便于维护和扩展。
  2. 高内聚:ViewModel封装了与界面相关的逻辑,使得业务逻辑更加清晰。
  3. 易于测试:由于Model和ViewModel可以独立于View进行测试,因此可以更容易地编写单元测试。
  4. 双向数据绑定:通过数据绑定,View和ViewModel之间的数据可以自动同步,减少了手动更新UI的需要。

2.1 模型

  • LoginModel
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibraryLog
{
    public class LoginModel
    {
        private string _UserName;
        public string UserName
        {
            get
            {
                return _UserName;
            }
            set
            {
                _UserName = value;
            }
        }
        private string _Password;
        public string Password
        {
            get
            {
                return _Password;
            }
            set
            {
                _Password = value;
            }
        }
    }
}

2.2 视图

<Window x:Class="LibraryLog.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LibraryLog"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="惠州市图书馆"  Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" FontSize="20" Margin="10"/>
        <StackPanel Grid.Row="1" Background="LightSkyBlue">
            <TextBlock Text="登录" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" FontSize="25" Margin="10"/>
        </StackPanel>

        <Grid Grid.Row="3" HorizontalAlignment="Center">
            <Grid.RowDefinitions>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="auto"/>
                <RowDefinition />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="用户名" Grid.Row="0" Grid.Column="0" FontSize="20" Margin="10"/>
            <TextBlock Text="密码" Grid.Row="1" Grid.Column="0" FontSize="20" Margin="10"/>
            <CheckBox Content="记住密码"  Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" FontSize="16" Margin="10"/>
            <Button Content="登录" Command="{Binding LoginAction}" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Width="280" Height="40" FontSize="20" Margin="10"/>
            <TextBox Text="{Binding UserName}" Grid.Row="0" Grid.Column="1" FontSize="20" Margin="10" Width="200"/>
            <TextBox Text="{Binding Password}" Grid.Row="1" Grid.Column="1" FontSize="20" Margin="10" Width="200"/>
        </Grid>
    </Grid>
</Window>

2.3 视图模型

  • LoginVM
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;

namespace LibraryLog
{
    public class LoginVM : INotifyPropertyChanged
    {
        private MainWindow _main;
        public LoginVM(MainWindow  main)
        {
            _main = main;
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }

        private LoginModel _LoginM = new LoginModel();
        public LoginModel LoginM
        {
            get
            {
                if (_LoginM == null)
                    _LoginM = new LoginModel();
                return _LoginM;
            }
            set
            {
                _LoginM = value;
                RaisePropertyChanged("LoginM");
            }
        }
        public string UserName
        {
            get
            {
                return _LoginM.UserName;
            }
            set
            {
                _LoginM.UserName = value;
                RaisePropertyChanged("UserName");
            }
        }
        public string Password
        {
            get
            {
                return _LoginM.Password;
            }
            set
            {
                _LoginM.Password = value;
                RaisePropertyChanged("Password");
            }
        }
        /// <summary>
        /// 登陆方法
        /// </summary>
        void LoginFunc()
        {
            if (UserName == "WPF" && Password == "666")
            {
                Index idx = new Index();
                idx.Show();
                _main.Hide();
            }
            else
            {
                MessageBox.Show("用户名或密码不正确!");
                Password = "";
                UserName = "";
            }
        }
        bool CanLoginExecute()
        {
            return true;
        }

        public ICommand LoginAction
        {
            get
            {
                return new RelayCommond(LoginFunc, CanLoginExecute);
            }
        }
    }
}

2.4 交互逻辑

using System.Windows;

namespace LibraryLog
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        LoginVM loginvm;
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new LoginVM(this);
        }  
    }
}

C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(HRM): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。HRM系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。CRM系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统
管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以实现企业战略目标,提升运营效率,增强核心竞争力。以下是对管理系统的详细介绍: 一、定义与构成 管理系统是指由硬件设备、软件应用、数据资源、人员以及相关管理制度共同构建的,用于处理、监控、分析和决策各类业务活动的综合信息系统。它通常包括以下几个核心组成部分: 数据采集模块:负责从各类业务环节中实时、准确地收集信息,形成企业的基础数据资源。 数据分析模块:运用统计学、人工智能等技术对数据进行深度挖掘和智能分析,提供决策支持。 业务流程管理模块:设计、执行、监控和优化业务流程,确保各项任务按照预定规则高效运转。 决策支持模块:基于数据分析结果,为管理者提供直观的可视化报告,辅助其进行科学决策。 用户界面与交互模块:提供友好的人机交互界面,方便用户操作使用。 二、主要类型与功能 管理系统根据所针对的管理对象和领域,可分为多种类型,如: 人力资源管理系统(HRM):涵盖招聘、培训、绩效考核、薪酬福利等人力资源全流程管理,提升人才效能。 客户关系管理系统(CRM):集中管理客户信息,优化销售、营销和服务流程,提升客户满意度和忠诚度。 供应链管理系统(SCM):整合供应商、制造商、分销商、零售商等供应链各环节,实现物流、资金流、信息流的协同运作。 企业资源计划系统(ERP):对企业内部财务、生产、采购、库存、销售等各项资源进行全面集成管理,提高整体运营效率。 项目管理系统(PM):对项目全生命周期进行规划、跟踪、控制,确保项目按时、按质、按预算完成。 三、价值与优势 提高效率:自动化工作流程、标准化业务操作,显著减少人工干预,提升工作效率。 优化决策:实时数据分析与预测,提供精准的决策依据,助力管理层做出明智选择。 资源整合:打破部门壁垒,实现信息共享,优化资源配置,降低运营成本。 合规风控:内置法规遵循机制,强化内部控制,降低经营风险。 持续改进:通过对系统数据的持续监控与分析,驱动业务流程持续优化,促进企业创新与发展。 总的来说,管理系统作为现代企业管理的重要工具,以其强大的数据处理能力、智能化的决策支持和高效的业务流程管理,有力推动了企业的数字化转型,助力企业在日益激烈的市场竞争中保持竞争优势。
利用VS2013 Update5在唐大仕老师源代码的基础上编写的私人图书馆管理系统,用到的技术主要有:C#有关文件、数据库、图形化界面等方面的知识。 本程序的主要功能:  1.默认页提供关于图书馆的基本信息(ID、类别、书名、装帧、作者、关键字、出版社、出版年代、定价、统一书号、页数、购书地点、是否读完等); 2.图书馆管理者必须先登录才能了解图书馆的详细信息,并可以对图 书进行添加、查找、修改、删除等的操作,还可进行管理与归类; 3.可以显示图书的ISBN的二维码; 使用说明: 1.信息的存储与读取,Access数据库,你的电脑可能需要安装AccessDatabaseEngine.exe(位于Debug目录下); 2.二维码使用的是zxing类库(zxing.dll位于Debug目录下,已经引入); 3.软件主要在DPI为125的屏幕下调试,DPI为100时控件可能有错位,大家可以自行修改(不过本人坚持认为125的文本尺寸对眼睛有利),也可编写自动适应DPI的方法并Load之; 关于注释: 本人一直人认为不注释才是最好的注释,程序代码应该简洁清晰易懂,所以除了唐老师原有的注释,本人几乎不作注释,这样做的好处是当我改变代码后,不必为忘了改注释而烦恼。 尚未完成的功能: 1.可以结合RichTxtBox,给每本图书来个图文并茂的简介,简介文件可以读取保存编辑,并与书名同名(书名+.rtf); 2.查询可以增加其他字段如关键字的查询; 3.书目录入可以增加更多字段(本人更喜欢在DataGridView上直接增删改);
本书所附光盘范例 第4章(\C04) 示例描述:本章介绍LINQ的基本语法和使用。 UseQueryExpression 演示LINQ表达式语法的使用。 UseMethodSynax 演示LINQ方法语法的使用。 第5章(\C05) 示例描述:本章介绍LINQ to ADO.NET相关技术和使用。 QueryOneTable 演示用LINQ查询单个DataTable的数据。 QueryMultiTable 演示用LINQ查询多个DataTable的数据。 UseCopyToTable 演示通过LINQ查询在DataTable之间拷贝数据。 UseORDesigner 演示对象关系设计器(OR Designer)的使用。 UseDataContextLINQ 演示通过DataContext进行数据绑定和访问。 UseDataView 演示通过LINQ实现DataView的数据查询和绑定。 第6章(\C06) 示例描述:本章介绍LINQ to XML相关技术和使用。 CreateSimpleXMLTree 演示通过XElement创建简单的XML树。 CreateAttributeElement 演示通过XElement创建具有属性的XML元素。 CreateSubElement 演示通过XElement创建具有子元素的XML元素。 CreateXMLTree 演示通过XElement创建复杂的完整的XML树。 QeuryAttributesElement 演示通过XElement查询XML元素的属性。 QueryInContent 演示通过XElement查询XML元素的具体内容。 QueryOrderElement 演示通过XElement对XML元素进行排序。 QuerySubElement 演示通过XElement查询XML元素的子元素。 LoadXMLTree 演示通过XElement加载XML树。 第7章(\C07) 示例描述:本章介绍了WPF的基本概念和架构,并举了一个简单的示例演示WPF程序的开发。 HelloWPF 第一个用WPF示例应用程序。 第8章(\C08) 示例描述:本章介绍了XAML的语法,包括原理、使用方法以及事件处理等等。 AttachedProperty 使用XAML中的附加属性。 CodebehindDemo 使用XAML中的后置代码文件编写程序代码。 LooseXaml 松散XAML示例。 NamespaceDemo1 在XAML中使用系统命名空间。 OtherNamespace 在XAML中使用其他项目中的命名空间。 PropertyandTypeConvert 使用属性和类型转换器 PropertyElementSyntax 使用XAML的属性元素语法。 UnderstandXAMLDemo1 理解XAML的简单示例。 UnderstandXAMLDemo2 使用程序代码创建UI元素。 XAMLEvents 在XAML中使用事件。 XamlReaderDemo 动态加载和编译XAML示例。 第9章(\C09) 示例描述:本章详细介绍WPF中的全局应用程序类Application。 AccessingCurrentApplication 访问当前的全局应用程序类实例。 ApplicationEventDemo 应用程序类事件演示。 CreateApplicationByHand 手动创建应用程序类实例。 HandleCommandLineDemo 处理命令行参数。 SingleInstanceApplication 单实例应用程序。 SingleInstanceWithCommunication 在单实例应用程序实例之间通信。 VS2008Application 在VS2008中创建自定义的Application类。 第10章(\C10) 示例描述:本章学习WPF提供的布局特性。 CanvasDemo 使用Canvas进行布局。 DockPanelDemo 使用DockPanel进行布局。 GridDemo 使用Grid进行布局。 InkCanvasDemo 使用InkCanvas的示例。 SimpleDiagDox 简单对话框示例程序。 SimpleStackPanelDemo 使用StackPanel进行布局。 WrapPanelDemo 使用WrapPanelDemo进行布局。 第11章(\C11) 示例描述:本章学习WPF中的内容控件的概念以及特性。 BorderDemo 使用Border控件。 ContentDemo Content属性的使用示例。 ControlControlDemo 内容控件层次结构。 HeaderedContentControlDemo HeaderedContentControl使用示例。 ScrollViewer 使用ScrollViewer控件。 ViewboxDemo 使用Viewbox控件。 第12章(\C12) 示例描述:本章介绍WPF中的依赖属性和事件路由特性。 AttachedEvents 使用WPF的附加事件。 CaptureMouseDemo 捕捉鼠标示例。 CreateWPFDependencyProperty 创建WF中的依赖属性。 CustomRoutedEvent 自定义路由事件。 DragandDropLabel 拖动编程示例。 DragandDropSimpleDemo 文件拖放示例。 GetFocus 获取控件焦点。 KeyInputDemo 处理键盘事件示例。 LatBox 依赖属性示例。 LogicalTree 逻辑树示例。 MouseClickEventArgsDemo 鼠标单击事件示例。 MouseInputInfo 获取鼠标输入信息。 ProgramLoopTree 编程遍历逻辑树和视觉树。 RegisterAttached 注册附加属性。 RoutingStrategyDemo 演示如何使用路由策略。 SharedDP 共享依赖属性示例。 StackPanelLoadedDemo WPF中元素的生命周期事件演示。 UnderstandingDP 理解依赖属性。 UnderstandRoutedEvent 理解路由事件。 第13章(\C13) 示例描述:本章学习使用WPF的标准控件。 AnimationPopup 动画Popup弹出窗口。 BackgroundLinearGradientBrushDemo 使用渐变画刷填充背景示例。 BindingSliderDemo 使用Silder滑动条控件。 ButtonBaseDemo 使用Button控件的ButtonBase基类。 ChangeCursorDemo 更改鼠标光标示例。 CursorSimpleDemo 使用鼠标光标的简单示例。 FontFamilyDemo 字体使用示例。 LabelDemo 使用Label标签控件。 ListBoxDemo 使用ListBox控件。 MultiLineTextBox 多行文本框控件的演示。 MultiSelectedListBox ListBox中的多选示例。 OpacityDemo Opacity属性的使用方法。 PasswordBoxDemo 使用PasswordBox示例。 Popup Popup控件使用示例。 ProgressBarDemo ProgressBar控件使用示例 RadioButtonCheckBox RadioButton使用示例。 RepeatToggleButton RepeatToggleButton使用示例。 SimpleComboBox示例 使用ComboBox的简单示例。 SliderDemo Slider控件使用示例 TextBlockDemo TextBlock控件使用示例 ToolTip ToolTip控件使用示例 第14章(\C14) 示例描述:本章学习WPF的窗口和导航窗口的使用方法。 AddAndRemoveEntry 添加和移除导航记录的功能。 CommonDialogDemo WPF中的通用对话框示例。 DialogModalDemo WPF中的模式窗口示例。 DrawShapeWindow 绘制图形窗口示例。 FirstNavigateApp 第一个导航窗口应用程序示例。 FrameInPage 在导航窗口中使用Frame示例。 FrameNavigationDemo 框架导航示例程序。 Hyperlinkdemo 在导航窗口中使用超级链接。 MessageBoxDemo 消息框使用示例。 NavigationEventDemo 理解和使用导航事件。 NavigationServiceDemo 导航服务示例。 NavigationWindowDemo 使用WPF中的导航窗口进行导航。 PageFunctionDemo 使用PageFunction功能返回数据示例。 SaveandRestoreWindowState 保存和恢复窗口状态示例。 SharpedWindow 图形窗口示例 ShowingaWindow 显示窗口。 WindowDemo 简单窗口示例 WindowIcon 获取和设置Window图标示例。 WindowLifetime 窗口的生命周期事件。 XBAPDemo1 XBAP应用程序示例。 第15章(\C15) 示例描述:本章学习WPF资源、样式和控件模板。 AssemblyResourceDemo1 使用程序集资源。 BaseOnStyle 样式的继承使用示例。 DataTriggerDemo 数据触发器使用示例。 EventSetterDemo 绑定事件处理器示例。 EventTriggerDemo 事件触发器使用示例。 FontSizeResourceDemo 使用WPF资源示例。 MultiDataTriggerDemo 多个数据触发器的使用示例。 MultiTriggerDemo 多事件触发器示例。 SimpleButtonTemplate 简单的按钮模板示例。 StyleOrResourceDemo 样式或资源使用示例。 SystemResourceDemo 系统资源使用示例。 TargetTypeStyleDemo 为样式指定TargetType示例。 TemplateTriggerDemo 模板触发器示例。 TriggerDemo 触发器示例。 WindowResourceDemo 窗口资源使用示例 第16章(\C16) 示例描述:本章演示如何使用WPF的形状、变换和画刷来绘制图形。 BitmapEffectsDemo 位图效果使用示例。 DashLine 虚线绘制示例。 ImageBrushDemo1 图像画刷使用示例。 LineCapDemo WPF线帽示例。 LineDem 绘制直线。 LineGradientBrushDemo1 线性渐变画刷使用示例。 OpacityMaskDemo 透明遮罩使用示例。 RadialGradientBrushDemo 径向渐变示例。 RectangleDemo 矩形绘制示例。 ReflectionEffectDemo 反射效果示例。 SizePlacementDemo 图像位置示例。 TileModeDemo TileMode枚举示例。 TransformDemo 变换使用示例。 VisualBrushDemo1 可视化画刷示例。 第17章(\C17) 示例描述:本章演示如何使用WPF的几何图形、图像和可视化层。 DrawingVisualDemo 绘制可视化层示例。 GeometryDrawingDemo 几何图形绘制示例。 MiniLanguageDemo 迷你几何语言使用示例。 PathGeometriesDemo1 路径几何图形的演示。 第18章(\C18) 示例描述:本章演示如何使用WPF数据绑定基础。 BindingToElementDemo 绑定到元素属性的示例。 BindingToObject 绑定到对象的示例。 DataBindingToTable 绑定到数据表示例。 第19章(\C19) 示例描述:本章演示如何使用WF进行编程入门。 AnswerToRiddleNormal 使用传统语法的猜迷游戏示例。 AnswerToRiddleWF 使用WF的猜迷游戏示例。 ApprovalOrder 订单批核WF示例程序。 SimpleStateMachine 简单的状态机示例程序。 WorkflowruntimeEvent 工作流运行时引擎事件。 第20章(\C20) 示例描述:本章介绍WF的标准活动。 CAGDemo ConditionedActivityGroup活动使用示例。 EventHandlingScopeActivityDemo 使用EventHandlingScopeActivity活动示例。 InvokeWorkflowDemo 使用InvokeWorkflowActivity活动执行其他工作流实例。 ParallelActivityDemo ParallelActivity活动使用示例。 ParallelReplicatorDemo ParallelActivity和ReplicatorActivity活动示例。 ReplicatorActivityDemo ReplicatorActivity活动使用示例。 RuleConditionDemo 活动的规则条件示例。 SuspendAndTerminate 挂起和终止活动示例。 UsingEventDrivenActivity EvenDrivenActivity使用示例。 VotingServicesDemo 一个投票服务示例程序。 WhileActivityDemo WhileActivity活动使用示例 第21章(\C21) 示例描述:本章介绍WF的基本服务。 PersistenceDemo 持久化服务使用示例。 SimpleTrackingSample 简单的追踪服务示例。 第22章(\C22) 示例描述:本章详细分析了一个基于WF的工作流批核系统。 WorkflowApprovalDemo 城市电力和照明工作任务批核系统示例代码。 第23章(\第23章) 示例描述:本章演示基本的WCF开发。 HelloWorld 第一个WCF程序。 第24章(\第24章) 示例描述:本章介绍WCF中有关通道和绑定的编程和配置。 basicHttpBinding绑定设置 basicHttpBinding的配置演示。 Datagram 演示了数据报传输模式的机制。 Duplex 演示了双工传输模式的机制。 msmqIntegrationBinding绑定设置 msmqIntegrationBinding的配置演示。 netMsmqBinding绑定设置 netMsmqBinding的配置演示。 netNamedPipeBinding绑定设置 netNamedPipeBinding的配置演示。 netTcpBinding绑定设置 netTcpBinding的配置演示。 Request-Reply 演示了请求-响应传输模式的机制。 wsDualHttpBinding绑定设置 wsDualHttpBinding的配置演示。 wsHttpBinding绑定设置 wsHttpBinding的配置演示。 绑定的设置 使用代码对绑定进行设置 状态改变事件 演示了如何响应状态改变事件 第25章(\第25章) 示例描述:本章演示了WCF中的契约编程。 WCF事件机制的实现 演示了WCF中事件的实现。 捕获异常示例 演示了WCF中异常的捕获。 操作契约的重载 服务契约的重载问题。 单程操作示例 演示了单程操作。 服务契约的WSDL 服务契约WSDL的示例。 集合数据契约 演示了集合数据契约的使用。 强类型消息契约 演示了强类型消息契约的使用。 弱类型消息契约 演示了弱类型消息契约的使用。 使用FaultCode和FaultReason示例 使用FaultCode和FaultReason的示例。 使用错误契约示例 使用错误契约示例。 使用具有继承结构的数据契约 演示了具有继承结构的数据契约。 数据契约的XSD 数据契约的XSD示例。 数据契约缺失成员 演示了数据契约缺失成员时的情况。 双程操作示例 双程操作的示例。 未捕获异常示例 未捕获异常示例。 序列化顺序 数据契约的序列化顺序。 第26章(\第26章) 示例描述:本章演示了WCF中的行为编程。 并行管理Multiple Multiple并发模式的示例。 并行管理Reentrant Reentrant并发模式的示例。 并行管理Single Single并发模式的示例。 代码添加元数据行为 演示使用代码添加元数据的行为。 单服务事务 单服务事务的示例 分布式事务 分布式事务的示例。 实例管理PerCall PerCall实例管理的示例。 实例管理PerSession PerSession实例管理的示例。 实例管理Single Single实例管理的示例。 显式使用事务类型 显示使用事务类型的示例。 第27章(\第27章) 示例描述:本章演示了WCF中和安全有关的配置和编程。 局域网内Windows平台系统的安全性 局域网内Windows平台系统的安全性编程。 配置宿主证书 演示了宿主证书的配置。 配置验证方法 验证方法的配置。 配置MembershipProvider 演示了MembershipProvider的配置。 配置角色提供程序 演示了角色提供程序的配置。 安全机制的跟踪配置 演示了安全机制的跟踪的配置。 第28章(\第28章) 示例描述:本章演示了一个实际WCF系统的编程。 自动化点滴管理系统 用WCF架构自动化点滴管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MechMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值