WPF学习之路(十二)控件(Content控件)

Label

Label相比TextBlock功能并不强大,但是支持键盘快捷键的方式获得焦点

<StackPanel>
            <Label Target="{Binding ElementName=txtA}">Choose _A</Label>
            <TextBox Name="txtA"></TextBox>
            <Label Target="{Binding ElementName=txtB}">Choose _B</Label>
            <TextBox Name="txtB"></TextBox>
        </StackPanel>

Alt+A焦点会切换到第一个文本框,Alt+B同理。通过"_字母"设置快捷键,Target属性关联控件和快捷键

更多内容

http://blog.csdn.net/lanshengsheng2012/article/details/9942669

https://msdn.microsoft.com/en-us/library/system.windows.controls.label(v=vs.110).aspx

Button

可以单击不能双击,ButtonBase将这种行为抽象出来

ButtonBase

定义了Click事件和ClickMode属性,控制触发Click事件的时间

Button: ButtonBase

增加了IsDefault\IsCancel属性

IsDefault: True,即使焦点不在Button上,按下回车也会触发Click

IsCancel:  True,即使焦点不在Button上,按下ESC也会触发Click

RepeatButton: ButtonBase

滚动条中包含RepeatButton控件,一般不单独使用,用于组成更复杂的控件

在一直被按着的情况下触发事件,频率由Delay\Interval控制

ToggleButton: ButtonBase

单击时可以保存状态的按钮

CheckBox: ToggleButton    支持多选

RadioButton: ToggleButton  支持互斥

组的概念

<GroupBox Margin="5">
    <StackPanel>
        <RadioButton>A1</RadioButton>
        <RadioButton>A2</RadioButton>
        <RadioButton>A3</RadioButton>
        <RadioButton Margin="0,10,0,0" GroupName="C">C1</RadioButton>
    </StackPanel>
</GroupBox>
<GroupBox Margin="5">
    <StackPanel>
        <RadioButton>B1</RadioButton>
        <RadioButton>B2</RadioButton>
        <RadioButton>B3</RadioButton>
        <RadioButton Margin="0,10,0,0" GroupName="C">C2</RadioButton>
    </StackPanel>
</GroupBox>

更多内容

http://www.c-sharpcorner.com/uploadfile/dbeniwal321/button-control-in-wpf/

https://msdn.microsoft.com/en-us/library/system.windows.controls.button(v=vs.110).aspx

ToolTip

将内容放置在浮动框内,鼠标移过关联控件时显示

ToolTip不会获得焦点,不能交互,通过Open和Closed事件可以控制ToolTip出现和消失时的行为。

ToolTipService定义了一些附加属性,在设置属性时有更高的优先级

<StackPanel Margin="5" ToolTip="StackPanel ToolTip">
    <Button ToolTip="This is my tooltip" ToolTipService.InitialShowDelay="5000" Margin="2">
        I have a tooltip
    </Button>
    <Button ToolTipService.InitialShowDelay="0" ToolTipService.BetweenShowDelay="5000" Margin="2">
        <Button.ToolTip>
            <ToolTip Background="LightBlue" Foreground="White" HasDropShadow="False">
                <StackPanel>
                    <TextBlock Margin="5">Image and text</TextBlock>
                    <Image Source=".\Image\icon.png" Stretch="None"></Image>
                    <TextBlock Margin="5">Image and text</TextBlock>
                </StackPanel>
            </ToolTip>
        </Button.ToolTip>
        I have a fancy tooltip
    </Button>
    <Button ToolTip="This is my tooltip" ToolTipService.Placement="Bottom" Margin="2">
        Placement Test
    </Button>
    <Button Padding="50">No nothing</Button>
    <TextBox TextWrapping="Wrap" MinLines="2" AutoWordSelection="True" Margin="2"></TextBox>
</StackPanel>

更多内容

http://www.cnblogs.com/xhzi/archive/2010/11/30/1891694.html

https://msdn.microsoft.com/en-us/library/system.windows.controls.tooltip(v=vs.110).aspx

To be continue...

时间: 2024-08-25 14:44:51

WPF学习之路(十二)控件(Content控件)的相关文章

java痛苦学习之路[十二]JSON+ajax+Servlet JSON数据转换和传递

1.首先客户端需要引入 jquery-1.11.1.js 2.其次javaweb工程里面需要引入jar包  [commons-beanutils-1.8.0.jar.commons-collections-3.1.jar.commons-lang-2.4.jar.commons-logging-1.1.3.jar.ezmorph-1.0.6.jar.json-lib-2.3-jdk15.jar] 3.客户端js端代码 4.servlet 服务器,映射的路径CardColl 以上就是整个过程,如果

【WPF学习】第十二章 属性验证

在定义任何类型的属性时,都需要面对错误设置属性的可能性.对于传统的.NET属性,可尝试在属性设置器中捕获这类问题.但对于依赖项属性而言,这种方法不合适,因为可能通过WPF属性系统使用SetValue()方法直接设置属性. 作为代替,WPF提供了两种方法来阻止非法值: ValidateValueCallback:该回调函数可接受或拒绝新值.通常,该回调函数用于捕获违反属性约束的明显错误.可作为DependencyProperty.Register()方法的一个参数提供该回调函数. CoerceVa

WPF学习之路(二) XAML(续)

属性 简单属性 前面用到的Width/Height都是简单属性,其赋值一定要放到双引号里 XAML解析器会根据属性的类型执行隐式转换 与C#的区别 SolidBrush.Color = Colors.AliceBlue; <Button Color = "AliceBlue" /> C#中有的枚举类型可以用(|)运算符组合,在XAML中用(,)分隔 附加属性 附加属性可以用于多个控件,但是在另外一个类中定义的属性,在WPF中常常用于布局 如DockPanel.Dock=&q

IOS学习之路十二(UITableView下拉刷新页面)

今天做了一个下拉刷新的demo,主要用到了 实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh 实现很简单下载源代码,加压后把 然后拷贝资源文件和EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m到相依的工程中. 添加QuartzCore.framework组建: 在tableview所在的类中添加如下代码: TableViewController.h [html] 

Linux嵌入式驱动学习之路(十二)按键驱动-poll机制

实现的功能是在读取按键信息的时候,如果没有产生按键,则程序休眠在read函数中,利用poll机制,可以在没有退出的情况下让程序自动退出. 下面的程序就是在读取按键信息的时候,如果5000ms内没有按键信息,则自己退出. 首先应用程序执行poll函数 kernel中的sys_poll do_sys_poll init_poll_funcptr-->do_poll do_poll for(;;) { if(do_pollfd(pfd,pt)) { count++; //如果驱动的poll返回非0值,

【WPF学习】第二十四章 基于范围的控件

原文:[WPF学习]第二十四章 基于范围的控件 WPF提供了三个使用范围概念的控件.这些控件使用在特定最小值和最大值之间的数值.这些控件--ScrollBar.ProgressBar以及Slider--都继承自RangeBase类(该类又继承自Control类).尽管它们使用相同的抽象概念(范围),但工作方式却又很大的区别. 下表显示了RangeBase类定义的属性: 表 RangeBase类的属性 通常不比直接使用ScrollBar控件.更高级的ScrollViewer控件(封装了两个Scro

【WPF学习】第十九章 控件类

原文:[WPF学习]第十九章 控件类 WPF窗口充满了各种元素,但这些元素中只有一部分是控件.在WPF领域,控件通常被描述为与用户交互的元素--能接收焦点并接受键盘或鼠标输入的元素.明显的例子包括文本框和按钮.然而,这个区别有时有些模糊.将工具提示视为控件,因为它根据用户鼠标的移动显示或消失.将标签视为控件,因为它支持记忆码(mnemonics,将焦点转移到相关控件快捷键). 所有控件都继承自System.Windows.Control类,该类添加了一小部分基本的基础结构: 设置控件内容对齐方式

Cocos2d-x 3.2 学习笔记(十)Joystick 搖杆控件

最近想做格鬥遊戲,那麼就要有搖杆控件,不想去看別人的代碼就自己寫了個搖杆控件,實現起來很簡單. 話不多說,看代碼: #ifndef __Joystick__ #define __Joystick__ #include "cocos2d.h" USING_NS_CC; enum JoystickEnum { DEFAULT, D_UP, D_DOWN, D_LEFT, D_RIGHT, D_LEFT_UP, D_LEFT_DOWN, D_RIGHT_UP, D_RIGHT_DOWN };

【WPF学习】第二十九章 元素绑定——将元素绑定到一起

原文:[WPF学习]第二十九章 元素绑定--将元素绑定到一起 数据banding的最简单情形是,源对象时WPF元素而且源属性是依赖性属性.前面章节解释过,依赖项属性具有内置的更改通知支持.因此,当在源对象中改变依赖项属性的值时,会立即更新目标对象中的绑定属性.这正是我们所需要的行为--而且不必为此构建任何额外的基础结构. 为理解如何将一个元素绑定到另一个元素,下面创建一个简单的示例.该示例窗口包含了两个控件:一个Slider控件和一个具有单行文本的TextBlock控件.如果向右拖动滑动条上的滑

【WPF学习】第十四章 事件路由

原文:[WPF学习]第十四章 事件路由 由上一章可知,WPF中的许多控件都是内容控件,而内容控件可包含任何类型以及大量的嵌套内容.例如,可构建包含图形的按钮,创建混合了文本和图片内容的标签,或者为了实现滚动或折叠的显示效果而在特定容器中放置内容.设置可以多次重复嵌套,直至达到你所希望的层次深度.如下所示: <Window x:Class="RouteEvent.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2