今天我来给大家讲解WPF中一些基本控件的用法,所谓基本控件,就是我们最常用用到的一些控件,通过这一节的讲解,大家会对WPF中的控件的用法有一个更深入的了解。

1.       基本控件

LABEL控件

Label控件是我们最熟悉的控件,基本上在windows程序或者ASP.NET程序里面都有这个控件,在WPFLABEL属于内容控件,不仅可以显示文字,还可以显示更丰富的信息。LABEL控件与TextBox控件相关联,  可以为Textbox控件设置快捷键.

在下面的这个例子中,用户按下F键,文本框控件就会获得焦点。

效果图:

 

如果为textbox设置快捷键,只要在LABEL的内容中输入下划线加上快捷键字符就可以了,在显示的时候下划线是不会显示出来的。

代码

<Label Content="_F®?¡ì?" Height="28" HorizontalAlignment="Left" Margin="36,62,0,0" Name="label1" VerticalAlignment="Top"  Target="{Binding ElementName=textBox1}"/>

<TextBox Height="23" HorizontalAlignment="Left" Margin="93,62,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />

Label控件不支持换行。但是可以在LABEL控件的内容面板中放在Textblock控件实现换行.,也可以使用AccessText来实现

代码

<Label  Margin="36,84,268,0" Name="label2" VerticalAlignment="Top"  Target="{Binding ElementName=textBox2}">

<ContentControl>

<AccessText TextWrapping="Wrap">

                _P¨¹?:¨¦°?º¦Ì?

?D</AccessText>

</ContentControl>

</Label>

<TextBox Height="23" HorizontalAlignment="Right" Margin="0,140,115,0" Name="textBox2" VerticalAlignment="Top" Width="120" />

TextBlock控件

TextBlock控件和lable控件一样,用来显示内容,但是TextBlock控件支持换行.,不支持快捷键访问操作。

TextBlock中的内容可以显示带格式的文本。使用TextDecorations属性可以设置文本的样式。

效果图

 

代码

<Grid>

<TextBlock Height="23"  Text="Da¨??2¨ª¨²" Name="textBlock1"  TextDecorations="BaseLine">

</TextBlock>

<TextBlock Height="23" HorizontalAlignment="Left" Margin="37,188,0,0" Name="textBlock2"  VerticalAlignment="Top" Width="152" >

<Run Text="¦?y线?" TextDecorations="Strikethrough"></Run>

<Run Text="¦??线?" TextDecorations="OverLine"></Run>

<Run Text="¨´线?" TextDecorations="Baseline"></Run>

<Run Text="??线?" TextDecorations="Underline"></Run>

</TextBlock>

</Grid>

使用Run标记可以定义多个文本,并指定不同的格式.

TextBox控件

TextBox控件和winform中的TextBox控件一样,可以用来显示输入文本内容.有以下属性是TextBox常用的

TextWrapping:设置TextBox是否换行

VerticalScrollBarVisibility :设置TextBox是否显示滚动条,以及滚动条怎样显示.

Language:属性来改变文本框的语言。

SpellCheck.IsEnabled:是否开启拼写检查.配合Language属性使用

PasswordBox控件

PasswordBox控件是密码框控件,可以为其设置掩码来隐藏用户所输入的内容。这个控件在WINFORM中我们比较常用,用法差不多,这里就讲解了.

Button控件

Button控件是我们用到最多的控件,在WPF中有三种类型的按钮控件,普通的按钮,CHEKCBOX,radiobutton,这些控件都继承在buttonbase.

Button控件属于内容控件.对于button控件,我们可能最熟悉的就是单击事件,button控件有一个ClickMode属性, 可以控制单击事件何时发生。

ReleaseButton被按下然后松开时发生单击事件

Hover:鼠标悬停在按钮上方引发单击事件

Press:当单击按钮时引发单击事件

下面这个demo通过不同的单击方式设置来改变窗体的背景色

效果图

 

代码

<Button Content="Press" Height="23" HorizontalAlignment="Left" Margin="71,16,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click"  ClickMode="Press"/>

<Button Content="Hover" Height="23" Name="Hover" VerticalAlignment="Top" Width="75"   ClickMode="Hover" Margin="71,72,132,0" Click="Hover_Click" />

<Button Content="Release" Height="23" Name="Release" VerticalAlignment="Top" Width="75" Margin="72,127,132,0"  ClickMode="Release" Click="Release_Click" />

除此之外,BUTTON控件还有两个重要的属性

IsCancel:表示按钮是一个取消按钮,用户可以在任意位置按下esc健触发该按钮

IsDefault:表示按钮是当前默认按钮,用户可以按下 enter键触发该按钮.

除了Button按钮之外,WPF还提供了另外两种类型的按钮控件,ToggleButtonRepeateButton..

顾名思义. ToggleButton是改变状态按钮,当单击时该按钮处于一种状态,再次单击时按钮处于另一种状态.

ToggleButton提供了一个ischeck属性,当为true时表示选中,当为false事表示为选中。还有一个null值,表示没进行选择,处于不确定状态.

RepeateButton表示当按下按钮后不放,将进行持续性的操作,普通按钮按按下后只触发一次事件.

下面我们来结合这两个按钮来做一个DEMO,ToggleButton处于选中 状态时,点击RepeateButton,进行数字递增操作,当ToggleButton处于未选择状态时,进行数字递减操作.

效果图

D代码

Xmal代码

<Grid>

<ToggleButton Name="toggle" Margin="38,46,216,223" IsThreeState="False"  Content="togglebututoÌ?¡Â¨°" Checked="ToggleButton_Checked" Click="toggle_Click"></ToggleButton>

<Label Content="0" Height="28" HorizontalAlignment="Left" Margin="38,121,0,0" Name="label1" VerticalAlignment="Top" />

<RepeatButton Name="repeate" Content="repeatbuttonÌ?¡Â¨°" Margin="157,120,101,119" Click="RepeatButton_Click"></RepeatButton>

</Grid>

Xmal.Cs代码

int num = 0;

        private void RepeatButton_Click(object sender, RoutedEventArgs e)

        {

            if (toggle.IsChecked == true)

            {

                num += 1;

            }

            else

            {

                num -= 1;

            }

            label1.Content = num.ToString();

        }

         private void toggle_Click(object sender, RoutedEventArgs e)

        {

            if (toggle.IsChecked == true)

            {

                toggle.Content = "toggleÀ??D";

            }

            else

            {

                toggle.Content = "toggle¡äÀ??D";

            }

        }

CheckBoxRadioButton

这两个控件和我们WINFORM中用的CheckBoxRadioButton控件一样。这两个控件都派生自ToggleButton类。因此他们也有三种状态,关于这两种控件的用法,我就不在多说,用户可以自己进行试验.

【转】WPF从我炫系统5---基本控件的用法相关推荐

  1. 【转】WPF从我炫系列4---装饰控件的用法

    在这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollVie ...

  2. 【转】WPF从我炫系列3---内容控件的用法

    今天我来给大家讲解WPF中内容控件的用法,在WPF中的内容控件,通俗的讲,是指具有Content属性的控件,在content属性里面可以嵌套放置任意其他类型的控件,但是Content只能接受单个元素, ...

  3. 【转】wpf从我炫系列1----布局控件的使用(上)

    今天我来给大家讲解在学习WPF过程中使用布局控件的一些心得,主要给大家介绍一下一个控件的用法.希望对大家学习Wpf有所帮助. 1.       StackPanel栈面板 2.       WrapP ...

  4. 【转】wpf从我炫系列2----布局控件的使用(下)

    4.        GRID控件 Grid控件可以是说是wpf中功能最强大和使用最多的控件.它有点类似于HMTL网页布局中的表格,可以自定义行列显示,并可以合并某些行和列. 使用<Grid.Ro ...

  5. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...

  6. WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。

    WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 原文: WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https ...

  7. WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性

    原文:WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性 如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢? ...

  8. UITableView (4): 在TableView中移动cell和Section 从TableView中删除cell和section 添加系统默认刷新控件...

    一  .问题:你想用流畅直观的动画来移动和拖拽TableView中的cell和section 方案: 用moveSection:toSection:方法把一个Section移动到新位置. 用moveR ...

  9. 64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中。

    64位操作系统注册ocx控件失败,提示:模块加载失败请确保该二进制存储在指定路径中 我的解决方案: 1.找到位于windows下的syswow64文件夹下的cmd 2.并拷贝需注册的ocx文件到sys ...

最新文章

  1. 引导加载程序之争: LILO 和 GRUB
  2. linux php任务计划,linux系统怎么添加计划任务执行php文件
  3. div水平垂直居中的几种方法(面试问题)
  4. 浏览器插件及好用的小工具
  5. python调用nmap_Python调用nmap扫描网段主机信息生成xml
  6. flash spi 野火_野火stm32-SPI
  7. M2M、物联网应用开发的好助手——Wavecom Sierra 无线MODEM( GSM/GPRS/EDGE MODEM)
  8. canvas绘制竖排的数字_微信小程序利用Canvas绘制图片和竖排文字详解
  9. 我们是龙的传人还是狼的传人? 《狼图腾》--- 绝对值得一读的书
  10. 副业搞钱的几个野路子:两个年入10万的零成本赚钱项目
  11. Outlook 2013 英文版 设置收信规则
  12. Error at hooking API “LoadStringA“ Dump first 32 bytes:
  13. mysql 军规_MySQL数据库军规
  14. 由一道bash jail题引出的琐事@_@
  15. MM配额协议(Quota Arrangement)-阿龙学习MM PA 笔记(3)
  16. PayPal轮询收单系统升级之PayPalme亲友支付
  17. 非常实用的织梦dede所有标签调用方法大全 .
  18. 发那科机器人GI分配_发那科机器人应用-数值寄存器 R[]
  19. 挖掘MOS管驱动电路的设计秘籍
  20. 2021-3-20 狂神说java之 redis学习

热门文章

  1. 微信小程序navigateBack如何带参数
  2. 日志log4cxx 封装、实例讲解、配置文件log4cxx.properties
  3. unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度
  4. 【DOS】dos命令大全
  5. [原创]传递UIScrollView的滑动事件到其子视图中
  6. jQuery图表插件 JS Charts
  7. vs2005新建类,自定义模板信息(转载)
  8. Js——elementFromPoint方法
  9. [剑指offer][JAVA]面试题第[46]题[把数字翻译成字符串][递归][逆推]
  10. 从html到pug模板,将变量从html-webpack-plugin传递到pug模板