用户控件,WPF中是继承自UserControl的控件,我们可以在里面融合我们的业务逻辑。

示例:(一个厌恶选择的用户控件)

后端:

using iMicClassBase;
using iMicClassBase.BaseControl;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace iMicClassUI.HomeToolControls
{
/**
* @控件名:HomeToolBackgroundPanel
* @功能 :切换黑板界面背景
* @作者 :tjer
* @时间 :2017.05.19
* **/ /// <summary>
/// HomeToolBackgroundPanel.xaml 的交互逻辑
/// </summary>
public partial class HomeToolBackgroundPanel : System.Windows.Controls.UserControl
{
#region 委托及事件
/// <summary>
/// 背景改变事件委托
/// </summary>
/// <param name="sender">源</param>
/// <param name="type">类型</param>
/// <param name="ChangeObj">改变对象</param>
public delegate void BackGroundSelectedChangeDelegate(object sender, BBBackGroundType type,object ChangeObj); /// <summary>
/// 背景改变事件
/// </summary>
public BackGroundSelectedChangeDelegate BackGroundSelectedChange = null; /// <summary>
/// 选项卡改变事件
/// </summary>
public static readonly RoutedEvent TabItemChangeEvent = EventManager.RegisterRoutedEvent
("TabItemChange", RoutingStrategy.Bubble, typeof(RoutedEventArgs), typeof(HomeToolBackgroundPanel));
public event RoutedEventHandler TabItemChange
{
add { AddHandler(TabItemChangeEvent, value); }
remove { RemoveHandler(TabItemChangeEvent, value); }
}
#endregion #region 变量
/// <summary>
/// 调用系统颜色框
/// </summary>
private ColorDialog SysColorDia = new ColorDialog();
#endregion #region 属性及依赖属性
/// <summary>
/// 当前选项卡背景类型
/// </summary>
public BBBackGroundType SelectedOption
{
get;
set;
} = BBBackGroundType.ColorType; /// <summary>
/// 当前颜色
/// </summary>
public static readonly DependencyProperty CurrentColorProperty =
DependencyProperty.Register("CurrentColor", typeof(System.Windows.Media.Color), typeof(HomeToolBackgroundPanel), new PropertyMetadata((Color)ColorConverter.ConvertFromString("#FF18311B"), OnCurrentColorChanged));
[Description("当前颜色"), Browsable(false)]
public System.Windows.Media.Color CurrentColor
{
get { return (System.Windows.Media.Color)GetValue (CurrentColorProperty); }
set { SetValue(CurrentColorProperty, value); }
} /// <summary>
/// 当前本地图片背景,从1开始,默认是无效0
/// <summary>
public static readonly DependencyProperty CurrentSysBgIndexProperty =
DependencyProperty.Register("CurrentSysBgIndex", typeof(int), typeof(HomeToolBackgroundPanel), new PropertyMetadata(0, OnCurrentSysBgIndexChanged)); [Description("当前系统图片背景索引"), Browsable(false)]
public int CurrentSysBgIndex
{
get { return (int)GetValue(CurrentSysBgIndexProperty); }
set { SetValue(CurrentSysBgIndexProperty ,value); }
} /// <summary>
/// 当前本地图片路径
/// </summary>
public static readonly DependencyProperty CurrentLocalImageBgURIProperty =
DependencyProperty.Register("CurrentLocalImageBgURI", typeof(string), typeof(HomeToolBackgroundPanel), new PropertyMetadata(string.Empty, OnCurrentLocalImageBgURIChanged));
[Description("当前本地图片路径"), Browsable(false)]
public string CurrentLocalImageBgURI
{
get { return (string)GetValue(CurrentLocalImageBgURIProperty); }
set { SetValue(CurrentLocalImageBgURIProperty, value); }
}
#endregion #region 窗体事件
/// <summary>
/// 构造
/// </summary>
public HomeToolBackgroundPanel()
{
InitializeComponent();
} /// <summary>
/// 初始化,每次显示的时候调用,可以展示当前黑板背景状态
/// </summary>
/// <param name="type">当前黑板背景类型</param>
/// <param name="obj">背景内容对象</param>
public void Init(BBBackGroundType type,object obj)
{
switch (type)
{
case BBBackGroundType.ColorType:
tabPanel.SelectedIndex = 0;
CurrentColor = (System.Windows.Media.Color)obj ;
break;
case BBBackGroundType.ImageType:
tabPanel.SelectedIndex = 1;
CurrentSysBgIndex = (int)obj;
break;
case BBBackGroundType.LocalType:
tabPanel.SelectedIndex = 2;
CurrentLocalImageBgURI = (string)obj;
break;
}
}
#endregion #region 依赖事件
/// <summary>
/// 颜色改变事件
/// </summary>
/// <param name="d">依赖对象</param>
/// <param name="e">事件</param>
private static void OnCurrentColorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (e.OldValue == e.NewValue)
{
return;
} if ((Color)e.NewValue== (Color)ColorConverter.ConvertFromString("#FF18311B"))
{
return;
} HomeToolBackgroundPanel control = (HomeToolBackgroundPanel)d;
control.CurrentSysBgIndex = 0;
control.CurrentLocalImageBgURI = string.Empty;
control.BackGroundSelectedChange?.Invoke(control, BBBackGroundType.ColorType,control.CurrentColor);
} /// <summary>
/// 背景索引改变事件
/// </summary>
/// <param name="d">依赖对象</param>
/// <param name="e">事件</param>
private static void OnCurrentSysBgIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (e.OldValue == e.NewValue)
{
return;
} if ((int)e.NewValue==0)
{
return;
} HomeToolBackgroundPanel control = (HomeToolBackgroundPanel)d;
control.CurrentColor = (Color)ColorConverter.ConvertFromString("#FF18311B");
control.CurrentLocalImageBgURI = string.Empty;
control.BackGroundSelectedChange?.Invoke(control, BBBackGroundType.ImageType, control.CurrentSysBgIndex);
} /// <summary>
/// 本地背景路径改变
/// </summary>
/// <param name="d">依赖对象</param>
/// <param name="e">事件</param>
private static void OnCurrentLocalImageBgURIChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (e.OldValue == e.NewValue)
{
return;
} if ((string)e.NewValue == string.Empty)
{
return;
} HomeToolBackgroundPanel control = (HomeToolBackgroundPanel)d;
control.CurrentColor = (Color)ColorConverter.ConvertFromString("#FF18311B");
control.CurrentSysBgIndex = 0;
control.BackGroundSelectedChange?.Invoke(control, BBBackGroundType.LocalType, control.CurrentLocalImageBgURI);
}
#endregion #region 内部操作事件
/// <summary>
/// 选项卡改变事件
/// </summary>
/// <param name="sender">事件源</param>
/// <param name="e">事件</param>
private void TabItem_Select(object sender, RoutedEventArgs e)
{
//选项卡改变,背景类型改变
switch (tabPanel.SelectedIndex)
{
case 0:
SelectedOption = BBBackGroundType.ColorType;
break;
case 1:
SelectedOption = BBBackGroundType.ImageType;
break;
case 2:
SelectedOption = BBBackGroundType.LocalType;
break; }
RoutedEventArgs routedEventArgs = new RoutedEventArgs(TabItemChangeEvent, e.OriginalSource);
RaiseEvent(routedEventArgs);
} /// <summary>
/// 面板颜色值选择
/// </summary>
/// <param name="sender">事件源</param>
/// <param name="e">事件</param>
private void ColorPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
colorPanelCurrent.Color = (sender as ColorPanel).Color;
if ((sender as ColorPanel).Color == (Color)(ColorConverter.ConvertFromString("#FF18311B"))) //保证颜色值是设定色的时候也会触发
{
btnBg1.IsSelected = false;
btnBg2.IsSelected = false;
btnBg3.IsSelected = false;
btnBg4.IsSelected = false;
CurrentSysBgIndex = 0;
CurrentLocalImageBgURI = string.Empty;
BackGroundSelectedChange?.Invoke(this, BBBackGroundType.ColorType, CurrentColor);
}
} /// <summary>
/// 点击更多颜色
/// </summary>
/// <param name="sender">事件源</param>
/// <param name="e">事件</param>
private void btnMoreColor_Click(object sender, RoutedEventArgs e)
{
DialogResult result = SysColorDia.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
colorPanelCurrent.Color = ColorConverterHelp.ConvertToMediaColor(SysColorDia.Color);
}
} /// <summary>
/// 本地背景选择
/// </summary>
/// <param name="sender">事件源</param>
/// <param name="e">事件</param>
private void SelectButton_ButtonSelected(object sender, EventArgs e)
{
int index = Convert.ToInt32((sender as SelectButton).Tag); switch (index)
{
case 1:
btnBg2.IsSelected = false;
btnBg3.IsSelected = false;
btnBg4.IsSelected = false;
CurrentSysBgIndex = 1;
break;
case 2:
btnBg1.IsSelected = false;
btnBg3.IsSelected = false;
btnBg4.IsSelected = false;
CurrentSysBgIndex = 2;
break;
case 3:
btnBg1.IsSelected = false;
btnBg2.IsSelected = false;
btnBg4.IsSelected = false;
CurrentSysBgIndex = 3;
break;
case 4:
btnBg1.IsSelected = false;
btnBg2.IsSelected = false;
btnBg3.IsSelected = false;
CurrentSysBgIndex = 4;
break;
} } /// <summary>
/// 点击选择本地图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAddLoaclImage_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog localBg = new OpenFileDialog();
localBg.DefaultExt = ".png";
localBg.Filter = "(背景)|*.png";
if (localBg.ShowDialog() == DialogResult.OK)
{
btnBg1.IsSelected = false;
btnBg2.IsSelected = false;
btnBg3.IsSelected = false;
btnBg4.IsSelected = false;
CurrentSysBgIndex = 0;
CurrentLocalImageBgURI = System.IO.Path.GetFullPath(localBg.FileName);
}
} #endregion
}
}

  前端:

<UserControl
x:Name="homeToolBackgroundPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:iMicClassUI.HomeToolControls"
xmlns:iMicClassBase="clr-namespace:iMicClassBase;assembly=iMicClassBase"
x:Class="iMicClassUI.HomeToolControls.HomeToolBackgroundPanel"
mc:Ignorable="d"
d:DesignHeight="110"
d:DesignWidth="180"> <Grid>
<Border BorderBrush="White" BorderThickness="0" ClipToBounds="True" SnapsToDevicePixels="True"
CornerRadius="5" Width="180" Height="110">
<TabControl x:Name="tabPanel" Style="{StaticResource TabControlStyle2}" SelectionChanged="TabItem_Select">
<!--颜色选项卡-->
<TabItem x:Name="TabItemOnlyColor" Header="纯色" Cursor="Hand" IsSelected="True" Style="{DynamicResource TabItemStyle3}">
<StackPanel Height="80" Width="180">
<Line x:Name="LINEONE" Stroke="#FF56C253" X1="18" Y1="0.5" X2="48" Y2="0.5" StrokeThickness="2"/>
<WrapPanel Height="80" ItemHeight="40" ItemWidth="40">
<StackPanel Margin="0,5,0,0" ToolTip="当前颜色">
<iMicClassBase:ColorPanel Name="colorPanelCurrent"
Color="{Binding CurrentColor ,ElementName=homeToolBackgroundPanel,Mode=TwoWay}"
Margin="0,5,0,0" Width="15" Height="15"/>
<TextBlock Text="当前" FontSize="12" Foreground="Black"
VerticalAlignment="Top" HorizontalAlignment="Center"/>
</StackPanel>
<iMicClassBase:ColorPanel Color="#FF18311B" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:ColorPanel Color="#FF000000" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:ColorPanel Color="#FF787878" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:ColorPanel Color="#FFD1D1D1" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:ColorPanel Color="#FFFFFFFF" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:ColorPanel Color="#FF996C33" Margin="2" MouseLeftButtonDown="ColorPanel_MouseLeftButtonDown"/>
<iMicClassBase:CustomButton Name="btnMoreColor" Content="更多" FontSize="14"
Foreground="#FF56C255" ToolTip="点击获取更多颜色"
TextBlock.TextAlignment="Center"
Padding="1,2,1,1"
Height="25" Width="40" VerticalAlignment="Center" Click="btnMoreColor_Click"/>
</WrapPanel>
</StackPanel>
</TabItem>
<!--图片选项卡-->
<TabItem x:Name="TabItemImage" Header="图片" Cursor="Hand" Style="{DynamicResource TabItemStyle3}" >
<StackPanel Height="80" Width="180">
<Line x:Name="LINETWO" Stroke="#FF56C253" X1="73" Y1="0.5" X2="103" Y2="0.5" StrokeThickness="2"/>
<WrapPanel Height="44" ItemHeight="42" ItemWidth="42" Margin="6,15,6,10">
<iMicClassBase:SelectButton Name="btnBg1" Margin="2" Tag="1"
ButtonSelected="SelectButton_ButtonSelected"> <iMicClassBase:SelectButton.Background>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_nor.png" />
</iMicClassBase:SelectButton.Background>
<iMicClassBase:SelectButton.BackgroundDefault>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_nor.png" />
</iMicClassBase:SelectButton.BackgroundDefault>
<iMicClassBase:SelectButton.BackgroundInvalid>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_nor.png" />
</iMicClassBase:SelectButton.BackgroundInvalid>
<iMicClassBase:SelectButton.BackgroundOver>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_click.png" />
</iMicClassBase:SelectButton.BackgroundOver>
<iMicClassBase:SelectButton.BackgroundPress>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_click.png" />
</iMicClassBase:SelectButton.BackgroundPress>
<iMicClassBase:SelectButton.BackgroundSelect>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg1_click.png" />
</iMicClassBase:SelectButton.BackgroundSelect>
</iMicClassBase:SelectButton>
<iMicClassBase:SelectButton Name="btnBg2" Margin="2" Tag="2"
ButtonSelected="SelectButton_ButtonSelected">
<iMicClassBase:SelectButton.Background>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_nor.png" />
</iMicClassBase:SelectButton.Background> <iMicClassBase:SelectButton.BackgroundDefault>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_nor.png" />
</iMicClassBase:SelectButton.BackgroundDefault> <iMicClassBase:SelectButton.BackgroundInvalid>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_nor.png" />
</iMicClassBase:SelectButton.BackgroundInvalid> <iMicClassBase:SelectButton.BackgroundOver>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_click.png" />
</iMicClassBase:SelectButton.BackgroundOver> <iMicClassBase:SelectButton.BackgroundPress>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_click.png" />
</iMicClassBase:SelectButton.BackgroundPress> <iMicClassBase:SelectButton.BackgroundSelect>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg2_click.png" />
</iMicClassBase:SelectButton.BackgroundSelect>
</iMicClassBase:SelectButton>
<iMicClassBase:SelectButton Name="btnBg3" Margin="2" Tag="3"
ButtonSelected="SelectButton_ButtonSelected">
<iMicClassBase:SelectButton.Background>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_nor.png" />
</iMicClassBase:SelectButton.Background>
<iMicClassBase:SelectButton.BackgroundDefault>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_nor.png" />
</iMicClassBase:SelectButton.BackgroundDefault>
<iMicClassBase:SelectButton.BackgroundInvalid>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_nor.png" />
</iMicClassBase:SelectButton.BackgroundInvalid>
<iMicClassBase:SelectButton.BackgroundOver>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_click.png" />
</iMicClassBase:SelectButton.BackgroundOver>
<iMicClassBase:SelectButton.BackgroundPress>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_click.png" />
</iMicClassBase:SelectButton.BackgroundPress>
<iMicClassBase:SelectButton.BackgroundSelect>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg3_click.png" />
</iMicClassBase:SelectButton.BackgroundSelect>
</iMicClassBase:SelectButton>
<iMicClassBase:SelectButton Name="btnBg4" Margin="2" Tag="4"
ButtonSelected="SelectButton_ButtonSelected">
<iMicClassBase:SelectButton.Background>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_nor.png" />
</iMicClassBase:SelectButton.Background>
<iMicClassBase:SelectButton.BackgroundDefault>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_nor.png" />
</iMicClassBase:SelectButton.BackgroundDefault>
<iMicClassBase:SelectButton.BackgroundInvalid>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_nor.png" />
</iMicClassBase:SelectButton.BackgroundInvalid>
<iMicClassBase:SelectButton.BackgroundOver>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_click.png" />
</iMicClassBase:SelectButton.BackgroundOver>
<iMicClassBase:SelectButton.BackgroundPress>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_click.png" />
</iMicClassBase:SelectButton.BackgroundPress>
<iMicClassBase:SelectButton.BackgroundSelect>
<ImageBrush ImageSource="/iMicClassBase;component/Images/HomeToolControlImages/bgimg4_click.png" />
</iMicClassBase:SelectButton.BackgroundSelect>
</iMicClassBase:SelectButton>
</WrapPanel>
</StackPanel>
</TabItem>
<!--本地选项卡-->
<TabItem x:Name="TabItemLocal" Header="本地" Cursor="Hand" Style="{DynamicResource TabItemStyle3}" >
<StackPanel Height="80" Width="180">
<Line x:Name="LINETHR" Stroke="#FF56C253" X1="128" Y1="0.5" X2="158" Y2="0.5" StrokeThickness="2"/>
<iMicClassBase:CustomButton Name="btnAddLoaclImage" Margin="0,18" Content="选择本地" Padding="8,4,8,4"
Click="btnAddLoaclImage_Click" Height="30" Width="80"/>
</StackPanel>
</TabItem>
</TabControl> </Border>
</Grid>
</UserControl>

  

其实用户控件是我们常用的,没什么可说的,在此做个说明,只想保持博文队形整齐。

自定义控件系列博文链接:

WPF自定义控件(一)の控件分类
WPF自定义控件(二)の重写原生控件样式模板
WPF自定义控件(三)の扩展控件
WPF自定义控件(四)の自定义控件
WPF自定义控件(五)の用户控件

WPF自定义控件(五)の用户控件(完结)的更多相关文章

  1. C# 自定义控件VS用户控件

    1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Con ...

  2. WPF案例 (五) 对控件界面使用倒影

    原文:WPF案例 (五) 对控件界面使用倒影 在这个程序里对5个2D控件界面应用了垂直倒影,边缘模糊化和模型变换,在本例中,这5个2D控件为Border, 各包含了一幅Image,界面如下图所示,源码 ...

  3. 自定义控件VS用户控件

    自定义控件VS用户控件 2015-06-16 1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container ...

  4. WPF 精修篇 用户控件

    原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...

  5. WPF之路——用户控件对比自定义控件UserControl VS CustomControl)

    将多个现有的控件组合成一个可重用的“组”. 由一个XAML文件和一个后台代码文件. 不能使用样式和模板. 继承自UserControl类. 自定义控件(扩展) 在现有的控件上进行扩展,增加一些新的属性 ...

  6. C#自定义控件、用户控件、动态加载菜单按钮

    一.效果图,动态加载5个菜单按钮: 二.实现方法 1.创建用户控件 2.在用户控件拖入toolStrip 3.进入用户控件的Lood事件,这里自动添加5个选  ToolStripMenuItem,后期 ...

  7. WPF学习- AllowDrop 用户控件启用拖放功能

    知识点: 创建自定义用户控件(UserControl) 使用户控件成为拖动源 使用户控件成为放置目标 使面板能够接收从用户控件放置的数据 创建项目: 1.新建WPF项目(Wpf-AllowDrop) ...

  8. WPF窗口和用户控件事件相互触发

    问题1: WPF项目里有一个窗口和一个用户控件,窗口和用户控件里都有一个Button,点击窗口里的Button如何触发用户控件里Button的Click事件 解答: //窗口代码 public par ...

  9. wpf的UserControl用户控件怎么添加到Window窗体中

    转载自 http://www.cnblogs.com/shuang121/archive/2013/01/09/2853591.html 我们来新建一个用户控件UserControl1.xaml &l ...

  10. [WPF 学习] 3.用户控件库使用资源字典的困惑

    项目需要(或者前后端分离的需要),前端我使用了用户控件库,由后端用代码加载和控制. 然而用户控件库没法指定资源字典,于是在用户控件的xaml文件里面手工添加了资源字典 <UserControl. ...

随机推荐

  1. 【Tomcat】Tomcat工作原理

    Tomcat 总体结构 Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的“七寸”.下面是 Tomcat 的总体结构图: ...

  2. Java win7或 xp下配置JDK环境变量

    JAVA win7或 xp下配置JDK环境变量 by:授客 QQ:1033553122 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08 ...

  3. 汇编语言--微机CPU的指令系统(五)(条件设置字节指令)

    (10)条件设置字节指令 条件设置字节指令(Set Byte Conditionally)是80386及其以后CPU所具有的一组指令.它们在测试条件方面与条件转移是一致的,但在功能方面,它们不是转移, ...

  4. JavaScript函数重载

    译者按: jQuery之父John Resig巧妙地利用了闭包,实现了JavaScript函数重载. 原文: JavaScript Method Overloading 译者: Fundebug 为了 ...

  5. VMWAR-workstatuon

    https://blog.csdn.net/felix__h/article/details/82853501 链接中的秘钥可用~感谢原文作者 下载安装: 官网下载地址:https://www.vmw ...

  6. BZOJ1101: [POI2007]Zap(莫比乌斯反演)

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2951  Solved: 1293[Submit][Status ...

  7. 2018-12-09 疑似bug_中文代码示例之Programming in Scala笔记第九十章

    续前文: 中文代码示例之Programming in Scala笔记第七八章 源文档库: program-in-chinese/Programming_in_Scala_study_notes_zh ...

  8. Spring学习之旅(六)Spring AOP工作原理初探

    AOP(Aspect-Oriented  Programming,面向切面编程)是Spring提供的关键技术之一. AOP基于IoC,是对OOP(Object-Oriented Programming ...

  9. 通过 python ssh库连接并发送命令给设备

    import paramiko import time hostname = '192.168.248.156' port = 22 user = 'zhou' passwd = ' paramiko ...

  10. phpcms中content主要使用的详情列表关系

    从首页(index.html)中点开的内容网页叫单网页(page.html) 从列表(list.html)中点开的网页叫内容页(show.html) 从导航栏的栏目中下拉的列表栏目叫栏目列表页(cat ...