目录

一、WPF的概述

1.1 WPF 简介

1.2 WPF 特点

二、XAML

2.1 对象元素语法

2.2 XAML 根元素

2.3 WPF 和 XAML 命名空间声明

三、控件的继承关系

四.常见控件

1.Label

2.TextBlock

3. Button

4. Border

5. RadioButton

6.CheckBox

7.ToolTip

8.GroupBox

9. Expander

10. Frame

11.TextBox

12.RichTextBox

13. ComboBox

14. Menu

15.TabControl

16. ListBox

17.DataGrid


一、WPF的概述

1.1 WPF 简介

  • WPF (全称:Windows Presentation Foundation)的核⼼是⼀个与分辨率⽆关且基于⽮量的呈现引擎,旨在充分利⽤现代图形硬件。
  • WPF 通过⼀套完善的应⽤程序开发功能对该核⼼进⾏了扩展,这些功能包括可扩展应⽤程序标记语⾔ (XAML)、控件、数据绑定、布局、⼆维和三维图形、动画、样式、模板、⽂档、媒体、⽂本和版式。
  • WPF 属于 .NET,因此可以⽣成整合 .NET API 其他元素的应⽤程序。

1.2 WPF 特点

  • 呈现效果不受分辨率的影响;
  • 基于DirectX 3d技术,可以做出炫酷的界⾯;
  • 提供UI框架,集成了⽮量图形、流动⽂字⽀持、3d视觉效果和控件模型框架;
  • UI与业务逻辑彻底分离,底层wpf引擎是把元素解释成对应的对象;
  • 可以⽀持 xp server2003 到 window7及以后的操作系统版本;
  • 数据是核⼼,基于数据驱动;

二、XAML

  • XAML 是⼀种声明性标记语⾔;
  • 应⽤于 .NET Core 编程模型时,XAML 简化了为 .NET Core 应⽤创建 UI 的过程;
  • XAML ⽂件是通常具有 .xaml 扩展名的 XML ⽂件;
  • 可通过任何 XML 编码对⽂件进⾏编码,但通常以 UTF-8 编码;

2.1 对象元素语法

对象元素语法 是 XAML 标记语法,它通过声明 XML 元素来实例化 CLR 类或结
构。此语法类似于其他标记语⾔(如 HTML)的元素语法。

  • 单标签格式: <StackPanel />。
  • 双标签格式: <StackPanel>  </StackPanel>

2.2 XAML 根元素 

⼀个 XAML ⽂件只能有⼀个根元素,这样才能同时作为格式正确的 XML ⽂件和有效的 XAML ⽂件。

在根标签下⾯有且只能有⼀个⼆级标签。在⼆级标签⾥⾯我们可以写多个三级和四级标签。

例如,⻚⾯的 Window 或 Page:

<Window>
<【布局标签】>【其他标签....】</【布局标签】>
</Window>
<Page><Window.Resources>....</Window.Resources><【布局标签】>【其他标签....】</【布局标签】>
</Page>

2.3 WPF 和 XAML 命名空间声明

在许多 XAML 文件的根标记中的命名空间声明内,通常可看到两个 XML 命名空间声明,如下图所示:

这些声明之间的关系是 x: 前缀映射⽀持作为 xaml 语⾔定义⼀部分的内部函数。

WPF 是⼀种将 xaml ⽤作语⾔的实现,并为 xaml 定义了其对象的词汇。

三、控件的继承关系

FrameworkElement 类提供 WPF框架级别实现基于 UIElement 定义的 WPF 核心 API。

FrameworkElement 常用属性
属性名 对象类型 作⽤
Width double 获取或设置元素的宽度。以与设备无关的单位的值(每单位1/96英寸)为单位。
Height double 获取或设置元素的高度。以与设备无关的单位的值(每单位1/96英寸)为单位。
ActualWidth double 获取此元素的呈现的宽度。
ActualHeight double 获取此元素的呈现的⾼度。
Name string 获取或设置元素的标识名称。
Style Style 获取或设置此元素呈现时所使⽤的 样式。
Margin Thickness 获取或设置元素的外边距。
HorizontalAlignment HorizontalAlignment 获取或设置在⽗元素中组合此元素时所应⽤的⽔平对⻬特征。
VerticalAlignment VerticalAlignment 获取或设置在⽗元素中组合此元素时所应⽤的垂直对⻬特征。
FocusVisualStyle Style 获取或设置⼀个属性,该属性允许 ⾃定义此元素在捕获到键盘焦点时 要应⽤于此元素的外观、效果或其 他样式特征
FlowDirection FlowDirection

获取或设置⽅向,⽂本和其他 ⽤户 界⾯ (UI) 元素在任何控制其布局的 ⽗元素中都按此⽅向流动。

DataContext object 获取或设置元素参与数据绑定时的 数据上下⽂。
Resources ResourcesDictionary 获取或设置本地定义的资源字典。
FrameworkElement 常用方法
⽅法名 参数 作⽤
BringIntoView 尝试将此元素放⼊视图,它包含在 任何可滚动区域内。

BringIntoView(Rect targetRectangle)

指定也放⼊视图的元素的大小。 尝试将放⼊视图,它包含在任何可 滚动区域内的此元素提供的区域大 小。

FindName(string name)

所请求元素的名称 查找具有提供的标识符名的元素。

FindResource(object resourceKey)

所请求的资源键标识符 搜索具有指定键的资源并在引发异常,如果找不到所请求的资源。
FrameworkElement 事件
事件名称 作⽤
Loaded 当对元素进⾏布局、呈现,且可将 其⽤于交互时发⽣。
KeyDown 当焦点在该元素上时按下某个键后发⽣。
GotFocus 在此元素获得逻辑焦点时发⽣。
MouseDown 在指针位于此元素上并且按下任意⿏标按钮时发⽣。
MouseMove 在⿏标指针位于此元素上并且移动⿏标指针时发⽣。
Click 控件的点击事件。

四.常见控件

1.Label

说明:表示控件的⽂本标签,并提供访问密钥⽀持。

继承关系:UIElement —> FrameworkElement —>Control —>ContentControl —>Label

  • 宽度为 width,⾼度为 height,内容为 content。
  • ⽔平⽅向排列设置为 HorizontalAlignment,垂直⽅向排列设置为 VerticalAlignment。
  • 外边距 Margin 四个数字对应⽅向分别为 左上右下⼀个数字代表所有⽅向的外边距;两个数字 分别代表 左右 上下

代码例子:

    <Grid><Label Width="200" Height="50" Content="Label控件"HorizontalAlignment="Center"  VerticalAlignment="Top"Margin="50,10" FontSize="20" Foreground="Orange"/></Grid>

2.TextBlock

说明:⼀个轻型控件,⽤于显示少量流内容。

继承关系:UIElement —> FrameworkElement  —>TextBlock

  • 如果标签⾥⾯有⽂本内容 会将追加到TextBlock的text内容后⾯。
  • 显示文字内容换⾏,可以在Textblock双标签⾥⾯ 加上LineBreak标签。

代码例子:

    <Grid><TextBlock Text="TextBlock控件" FontSize="25" FontWeight="Light" Foreground="OliveDrab">你好呀 <LineBreak/>不做舔狗</TextBlock></Grid>

3. Button

说明:按钮控件。

继承关系:UIElement —> FrameworkElement —>Control —>ContentControl —>ButtonBase

—>  Button

  • Click="Button_Click" 定义点击事件 Button_Click
  • MouseMove="Button_MouseMove" 定义鼠标移动事件 Button_MouseMove

代码例子:

        <Button Width="100" Height="30" HorizontalAlignment="Left" VerticalAlignment="Top" Content="我是个按钮" Margin="20,20,0,0" Background="Teal" BorderThickness="5,0,10,0" BorderBrush="Transparent" Foreground="White" Click="Button_Click" MouseMove="Button_MouseMove" />

4. Border

说明:边框控件,作⽤在另⼀个元素四周绘制边框或背景。

继承关系:UIElement —> FrameworkElement —> Decorator

  • BorderThickness 设置边框宽度,默认值为0 ;只有⼀个参数,代表的是四周宽度;有四个参数时 分别代表左边 上边 右边 下边。
  • BorderBrush 设置边框颜色,需要上边框宽度才能显示边框的效果。
  • CornerRadius 设置边框⻆的弧度。

代码例子

    <Grid><Border Width="200" Height="80" Background="LightBlue" BorderBrush="Orange" BorderThickness="1,2,4,1" CornerRadius="18"><Button Background="Transparent" FontSize="20" Foreground="White" Content="我是个按钮" Click="Button_Click" BorderBrush="Transparent"></Button></Border></Grid>

5. RadioButton

说明:表示可由用户选择但不能清除的按钮。 可以通过单击来设置 IsChecked 的 RadioButton 属性,但只能以编程方式清除该属性。

继承关系:UIElement—> FrameworkElementt—> Controlt—>ContentControlt—>

ButtonBaset—> ToggleButtont—> RadioButton

  • RadioButton 可以使⽤ groupName 进⾏分组。

代码例子:

    <Grid><RadioButton Content="男" GroupName="sex" Margin="10,100" FontSize="20" Foreground="red" VerticalAlignment="Top" HorizontalAlignment="Left" ></RadioButton><RadioButton Content="⼥" GroupName="sex" Margin="80,100" FontSize="20" Foreground="Blue" VerticalAlignment="Top" HorizontalAlignment="Left"></RadioButton><RadioButton Content="中性" GroupName="sex" Margin="160,100" FontSize="20" Foreground="Orange" VerticalAlignment="Top" HorizontalAlignment="Left"></RadioButton></Grid>

6.CheckBox

说明: 表示用户可以选择和清除的控件。

继承关系:UIElement—>FrameworkElement—>Control—>ContentControl—>

ButtonBase—>ToggleButton—>CheckBox

代码例子:

    <Grid Name="gridMain"><Label VerticalAlignment="Top" Width="120" FontSize="20" Background="Orange" Foreground="White">有钱人选择:</Label><CheckBox Content="萌妹子" Margin="300,50" VerticalAlignment="Top" HorizontalAlignment="Left" Width="120" Height="30" FontSize="18" BorderBrush="blue"></CheckBox><CheckBox Content="女汉子" Margin="300,80" VerticalAlignment="Top" HorizontalAlignment="Left" Width="150" Height="30" FontSize="18" IsChecked="True"></CheckBox><CheckBox Content="女强人" Margin="300,110" VerticalAlignment="Top" HorizontalAlignment="Left" Width="120" Height="30" FontSize="18"></CheckBox><Button Content="选着女人" Width="120" Height="30" Click="Button_Click"HorizontalAlignment="Left" Margin="331,182,0,0" VerticalAlignment="Top"/></Grid>

遍历Grid 下所有被选着的 CheckBox。

        private void Button_Click(object sender, RoutedEventArgs e){UIElementCollection children = gridMain.Children;StringBuilder sbf = new StringBuilder("有钱人选着:");foreach (UIElement item in children){if (item is CheckBox && (item as CheckBox).IsChecked.Value){sbf.Append((item as CheckBox).Content + ",");}}MessageBox.Show(sbf.ToString());}

7.ToolTip

说明:表示一个控件,该控件可创建一个弹出窗口,以便在界面中显示元素的信息。

继承关系:UIElement—>FrameworkElement—>Control—>ContentControl—>ToolTip

  • 控件继承了FrameworkElement 都有ToolTip属性。
  • 使用ToolTip属性,控件 需要嵌⼊元素的ToolTip属性内。

代码例子:

    <Grid Name="gridMain"><Button Width="180" Height="50" HorizontalAlignment="Left" FontSize="20" Margin="200,10">button 按钮<Button.ToolTip><TextBlock>我是一个按钮</TextBlock></Button.ToolTip></Button></Grid>

8.GroupBox

说明:表示一个控件,该控件用于创建具有用户界面 (UI) 内容边框和标题的容器。

继承关系:UIElement—>FrameworkElement—>Control—>ContentControl

—>HeaderedContentControl—>GroupBox

代码例子:

    <Grid><GroupBox ><GroupBox.Header><Label Foreground="blue">这个是groupbox的标题</Label></GroupBox.Header><StackPanel><TabControl Name="myTabControl" TabStripPlacement="Top" Margin="0, 0, 0, 10" Height="350"><TabItem Name="PersonalInfo"><TabItem.Header>逍遥派</TabItem.Header><StackPanel><TextBlock>选着一门功夫</TextBlock><ListBox Name="xiaoyaoList" ><ListBoxItem IsSelected="true">北冥神功</ListBoxItem><ListBoxItem>凌波微步</ListBoxItem><ListBoxItem>天山折梅手</ListBoxItem><ListBoxItem>白虹掌</ListBoxItem></ListBox></StackPanel></TabItem><TabItem><TabItem.Header>少林</TabItem.Header><StackPanel><TextBlock>选着一门功夫</TextBlock><ListBox Name ="shaolinList" ><ListBoxItem IsSelected="true">易筋经</ListBoxItem><ListBoxItem>拈花指</ListBoxItem><ListBoxItem>无相劫指</ListBoxItem><ListBoxItem>大力金刚指</ListBoxItem></ListBox></StackPanel></TabItem></TabControl><Button Content="Show Summary" /></StackPanel></GroupBox></Grid>

9. Expander

说明:表示一种控件,该控件显示具有可折叠内容显示窗口的标题。

继承关系:UIElement—>FrameworkElement—>Control—>ContentControl

—>HeaderedContentControl—>Expander

  • 如果内容要跟Expander宽⾼⼀致,需要设置⽔平和垂直⽅向的排列为⾮拉伸的状态。
  • 如果ExpandDirection设置为Down或Up时,我们不能设置它的⾼度。
  • 如果ExpandDirection设置为Left或Right时,我们不能设置它的宽度。

代码例子:

    <Grid><Expander Header="编程语言" FontSize="18" Foreground="Blue" IsExpanded="True" BorderThickness="1" BorderBrush="Green" ExpandDirection="Down" VerticalAlignment="Top" HorizontalAlignment="Center" Height="100"><StackPanel Orientation="Vertical"><CheckBox FontSize="18">C#</CheckBox><CheckBox FontSize="18">JAVA</CheckBox><CheckBox FontSize="18">Python</CheckBox></StackPanel></Expander></Grid>

10. Frame

说明:框架是一种支持导航的内容控件。

继承关系:UIElement—>FrameworkElement—>Control—>ContentControl—>Frame

嵌入百度翻译页面内容:

    <Grid><Frame Name="myFrame" Source="https://fanyi.baidu.com/" VerticalAlignment="Top" HorizontalAlignment="Center" Width="700" Height="300" Margin="30,80" NavigationUIVisibility="Visible" ></Frame></Grid>

11.TextBox

说明:表示一个控件,该控件可用于显示或编辑无格式文本。

继承关系:UIElement—>FrameworkElement—>Control—>TextBoxBase—>TextBox

代码例子:

    <Grid><TextBox Name="myTextBox" FontSize="30" VerticalAlignment="Top" HorizontalAlignment="Left" BorderBrush="Orange" SelectionBrush="Teal">⽂本控件</TextBox></Grid>

12.RichTextBox

说明:表示对 FlowDocument 对象进行操作的丰富编辑控件。
FlowDocument 用高级文档功能(如分页和列)承载流内容和设置流内容格式。

继承关系:UIElement—>FrameworkElement—>Control—>TextBoxBase—>RichTextBox

  • Paragraph 是段落标签,类似 html 的 p 标签。
  • LineBreak 标签是换行标签。
  • Run 标签是内联级别的流内容元素,用于包含格式化或非格式化文本的运行。

代码例子:

    <Grid><RichTextBox Name="richTxt"><FlowDocument><Paragraph TextIndent="20">弹指神通:用手弹出细碎物事击打对方或者直接用手指弹在对方兵器上,通过运用内力达到击落对方兵器、击打对方穴道等作用。<LineBreak/>落英神剑掌:双臂挥动,四面八方都是掌影,或五虚一实,或八虚一实,真如桃林中狂风忽起,万花齐落一般。</Paragraph><!--x的2次⽅+y的2次⽅ = 100 --><Paragraph FontSize="30"><Run>x</Run><InlineUIContainer ><Label Margin="-10,0,0,0" FontSize="18">2</Label></InlineUIContainer><Run>+</Run><Run>y</Run><InlineUIContainer ><Label Margin="-10,0,0,0" FontSize="18">2</Label></InlineUIContainer><Run>=</Run><Run>100</Run></Paragraph></FlowDocument></RichTextBox></Grid>

13. ComboBox

说明:表示带有下拉列表的选择控件,通过单击控件上的箭头可显示或隐藏下拉列表。

继承关系:UIElement—>FrameworkElement—>Control—>ItemsControl—>

Selector—>ComboBox

代码例子:

使⽤ items 添加子项:

    <Grid><StackPanel><ComboBox Name="comboBox1"Text="武功秘籍"IsEditable="True"IsReadOnly="False"/></StackPanel></Grid>
    public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.comboBox1.Items.Add("太极拳");this.comboBox1.Items.Add("太极剑");this.comboBox1.Items.Add("太极");}}

使⽤ ItemsSource 进⾏绑定:

    public class Dept{public int Id { get; set; }public string Name { get; set; }}
        public MainWindow(){InitializeComponent();List<Dept> list = new List<Dept>();list.Add(new Dept() { Id = 1, Name = "侠客行" });list.Add(new Dept() { Id = 2, Name = "飞狐外传" });//使⽤ItemsSource 进⾏绑定this.comboBox1.ItemsSource = list;this.comboBox1.DisplayMemberPath= "Name";this.comboBox1.SelectedValuePath= "Id";}
    <Grid><StackPanel><ComboBox Name="comboBox1"Text="武功出处"IsEditable="False"IsReadOnly="False"/></StackPanel></Grid>

使⽤静态资源 进⾏绑定:

namespace WpfApp1
{public class MartialArts : ObservableCollection<string>{public MartialArts() {Add("云梯纵");Add("太极拳");Add("龙爪手");}}
}

 使⽤硬编码编写:

    <Grid><StackPanel  Grid.Column="0" Grid.Row="6"><ComboBox Name="comboBox1"            Text="选择"            IsEditable="True"            IsReadOnly="False" Width="120" Height="30" VerticalAlignment="Top"><ComboBoxItem>张无忌渣男</ComboBoxItem><CheckBox>超敏</CheckBox><CheckBox>周芷若</CheckBox><CheckBox>小昭</CheckBox></ComboBox></StackPanel></Grid>

 使⽤DataContext 进⾏绑定:

    <Grid><ComboBox Name="comboBox1"            Text="部门"            IsEditable="True" ItemsSource="{Binding}"            IsReadOnly="False" Width="120" Height="30" VerticalAlignment="Top"></ComboBox></Grid>
        private void Window_Loaded(object sender, RoutedEventArgs e){List<Dept> list = new List<Dept>();list.Add(new Dept() { Id = 1, Name = "侠客行" });list.Add(new Dept() { Id = 2, Name = "飞狐外传" });this.comboBox1.DataContext = list;this.comboBox1.DisplayMemberPath= "Name";this.comboBox1.SelectedValuePath = "Id";}

14. Menu

说明:表示一个 Windows 菜单控件,该控件可用于按层次组织与命令和事件处理程序关联的元素。

继承关系:UIElement—>FrameworkElement—>Control—>ItemsControl—>MenuBase—>Menu

代码例子:

    <Grid><Menu VerticalAlignment="Top" Height="30"><MenuItem Header="菜单1"></MenuItem><MenuItem Header="菜单2"><MenuItem Header="菜单2-1"><MenuItem Header="菜单2-1-1"></MenuItem><MenuItem Header="菜单2-1-2"></MenuItem></MenuItem></MenuItem></Menu></Grid>

15.TabControl

说明:表示包含多个项的控件,这些项共享屏幕上的同一空间。

继承关系:UIElement—>FrameworkElement—>Control—>ItemsControl—>

Selector—>TabControl

代码例子:

    <Grid><TabControl><TabItem Header="tab1" FontSize="30"><Grid><Label>tab1的内容</Label><TextBox Name="textBox1" Width="50"/></Grid></TabItem><TabItem   FontSize="30"><TabItem.Header><Grid><Label>tab2</Label></Grid></TabItem.Header><Label>tab2的内容</Label></TabItem><TabItem Header="tab3"  FontSize="30"><Label>tab3的内容</Label></TabItem></TabControl></Grid>

16. ListBox

说明:包含可选项列表。

继承关系:UIElement—>FrameworkElement—>Control—>ItemsControl—>Selector—>ListBox

使⽤动态绑定 渲染出ListBoxItem。

    <Grid><ListBox Name="listbox1" FontSize="10" SelectionMode="Extended" ItemsSource="{Binding}"><ListBox.ItemTemplate><DataTemplate ><TextBlock Text="{Binding}"></TextBlock></DataTemplate></ListBox.ItemTemplate></ListBox></Grid>
        private void Window_Loaded(object sender, RoutedEventArgs e){List<string> list = new List<string>();list.Add("少林");list.Add("武当");list.Add("明教");list.Add("丐帮");this.listbox1.DataContext = list;}

17.DataGrid

说明:表示用于在可自定义的网格中显示数据的控件。

继承关系:UIElement—>FrameworkElement—>ControlItemsControl—>

Selector—>MultiSelector—>DataGrid

    <Grid><DataGrid FontSize="15" Name="grid1" ItemsSource="{Binding}" AutoGenerateColumns="False" CanUserAddRows="False" GridLinesVisibility="Vertical" ><DataGrid.Columns><DataGridTextColumn Header="ID" Binding="{Binding Id}"></DataGridTextColumn><DataGridTextColumn Header="名称" Binding="{Binding Name}"></DataGridTextColumn><!--⾃定义模板列--><DataGridTemplateColumn><!--⾃定义列头--><DataGridTemplateColumn.Header><TextBlock>年龄</TextBlock></DataGridTemplateColumn.Header><!--⾃定义单元格--><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBlock Text="{Binding Age}"></TextBlock></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns></DataGrid></Grid>
        private void Window_Loaded(object sender, RoutedEventArgs e){DataTable dt = new DataTable();dt.Columns.Add("Id",typeof(int));dt.Columns.Add("Name", typeof(string));dt.Columns.Add("Age", typeof(int));dt.Rows.Add(new object[] { 1, "张无忌",18 });dt.Rows.Add(new object[] { 1, "赵敏", 18 });dt.Rows.Add(new object[] { 1, "周芷若", 18 });grid1.DataContext = dt;}

【WPF】WPF 常用控件相关推荐

  1. C#WPF 常用控件

    一.常用控件 1.(1).Border(边框)放到其他控件内部,给其他控件画边框,其他容器必须支持双标签.(2).Background决定背景颜色,BorderBrush决定边框颜色,BorderTh ...

  2. WPF之DataGrid控件使用

    WPF之DataGrid控件使用 一.DataGrid简介 二.DataGrid数据源绑定 三.DataGrid单元格编辑触发事件 四.DataGrid增加删除行 五.DataGrid数据触发器 参考 ...

  3. WPF 自定义DataGrid控件样式

    WPF 自定义DataGrid控件样式 样式一: 样式代码: <!--DataGrid样式--><Style TargetType="DataGrid">& ...

  4. 有关WPF中DataGrid控件的基础应用总结

    基础说明 DataGrid是WPF提供的基础控件,它可以非常轻松的呈现出一张表格,本文章会按照从易到难的顺序依次将DataGrid的使用方法进行解说,除了MSDN上给出的最基本的例子之外,给出了三个比 ...

  5. WPF查找子控件和父控件方法

    原文:WPF查找子控件和父控件方法 public List<T> GetChildObjects<T>(DependencyObject obj, string name) w ...

  6. WPF 动画显示控件

    原文:WPF 动画显示控件 当我们要显示一个控件的时候,不仅仅要显示这个控件,还要有动画的效果. 主要用到了DoubleAnimation类. public static void ShowAnima ...

  7. WPF的Timer控件的使用

    原文:WPF的Timer控件的使用 通过System.Threaing.Timer控件来实现"初始加载页面时为DataGrid的模版列赋初始值" System.Threaing.T ...

  8. Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决

    Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决 参考文章: (1)Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决 (2)https://www. ...

  9. WPF之复杂形状控件

    WPF之复杂形状控件 原文:WPF之复杂形状控件 有的时候想将一张图片变成一个按钮.当然这里不是单纯讲图片作为按钮的背景. 这两者是有区别的: 前者图片即按钮,比如你有一个空心的圆圈,当你点击中间空心 ...

  10. WPF 4 日历控件(Calendar)

    WPF 4 日历控件(Calendar) 原文:WPF 4 日历控件(Calendar) 在之前我已经写过两篇关于WPF 4 任务栏(Taskbar)相关的特性.相信自从VS2010 Beta 版放出 ...

最新文章

  1. 我同事说我写代码像写诗
  2. php api数据,php API查询数据
  3. Vue中实现页面上点击按钮下载文件(exe)
  4. Linux0.00 代码解析(二)
  5. mysql数据库在什么上运行_mysql – 在所有数据库上运行SQL查询
  6. 桌面软件打开都会变成计算机,我不小心把电脑界面程序的打开方式都变成一种了,怎么还原啊?...
  7. oracle驱动maven报错_在Maven仓库中添加Oracle JDBC驱动
  8. java 线程 wait sleep_JAVA线程sleep和wait方法区别
  9. 动态路由 RIP的配置方法
  10. matlab画直方图
  11. 读coco数据集的代码接口了解segmentation的处理方法
  12. 你总觉得你男朋友在敷衍你
  13. LINUX 常见问题1000个详细解答
  14. 采访计算机老师的问题,全程导学 | 第24期 行远自迩,笃行不怠——专访邹立仁老师...
  15. 高防服务器与高防IP的区别和联系
  16. 【微信小程序-0基础入门】相关介绍和账号注册
  17. PC-Lint的使用方法
  18. 在西安,1000万人的城市,有多少家IT培训机构?
  19. 使用Python搭建Gitee图床
  20. 《数据结构——C++实现》(第二版)课后答案(缪淮扣 沈俊)

热门文章

  1. 怎么做服务器压力测试? 1
  2. 静态代码块和静态变量执行顺序
  3. vue android 4.4兼容,vue cli3 打包兼容Android 4.4
  4. 如何在WORD的框框里打钩
  5. android平板手,诺基亚7.9寸Android平板真机上手 或售1499元
  6. android spp服务,使用Android设备通过SPP通过蓝牙发送数据
  7. 为什么高通滤波器也能变成微分器?
  8. c语言while与until的用法,while和until循环
  9. tomcat网站测试linux,【实战演练】Linux操作系统07-用tomcat搭建网站
  10. 会python的人工作都不会太差什么梗_老板:你很努力,但我还是想提拔会Python的新人!...