1、通过设置AutoSize(bool)属性来控制按钮的大小以适应文本的长度

btn_One.AutoSize = true;//设置按钮基于内容自动调整大小

2、当按钮得到焦点是自动放大,失去焦点时自动缩小

       private void button1_MouseEnter(object sender, EventArgs e)
{
button1.Location = new Point(, );//设置按钮位置
button1.Font = new Font("隶书", );//设置按钮字体样式
button1.Width = ;//设置按钮宽度
button1.Height = ;//设置按钮高度
} private void button1_MouseLeave(object sender, EventArgs e)
{
button1.Location = new Point(, );//设置按钮位置
button1.Font = new Font("宋体",);//设置按钮字体样式
button1.Width = ;//设置按钮宽度
button1.Height = ;//设置按钮高度
}

3、制作跑动的按钮,使用Trimer组件间隔性的更改按钮的位置

4、根据需要生成Button按钮

            Random G_Random=new Random();
Button bt = new Button()//创建按钮对象
{
Text = "动态生成按钮",//设置按钮的文本信息
ForeColor = Color.FromArgb(//设置按钮的前景颜色
G_Random.Next(, ),
G_Random.Next(, ),
G_Random.Next(, )),
AutoSize = true,//设置按钮自动调整大小
Location = e.Location//设置按钮位置
};
Controls.Add(bt);//将按钮加入控件集合

所有窗体控件都继承于Control类,所以所有窗体控件都可以使用Control集合的Add方法动态地将控件添加到窗体上

 Button In WPF

普通

<Button Name="btnTest" Width="120" Height="36" Margin="10,10" HorizontalAlignment="Left">
你好
</Button>

文本为一个形状

<Button Name="btnTest" Width="120" Height="36" Margin="10,10" HorizontalAlignment="Left">
<Button.Content>
<Rectangle Fill="LightBlue" Width="90" Height="28">
</Rectangle>
</Button.Content>
</Button>

文本为一张图片

<Button Name="btnTest" Width="120" Height="36" Margin="10,10" HorizontalAlignment="Left">
<Button.Content>
<Image Source="image/img-mytest.jpg"></Image>
</Button.Content>
</Button>

图片和文字都有

<Button Name="btnTest" Width="360" Height="360" Margin="10,10" HorizontalAlignment="Left">
<StackPanel>
<Image VerticalAlignment="Top" Source="image/img-mytest.jpg"/>
<TextBlock Text="点击试试" HorizontalAlignment="Center"/>
</StackPanel>
</Button>

两个有趣的属性

IsDefault,按钮会成为默认按钮

IsCancel,按钮会成为窗体的取消按钮

<Button Name="BtnText" IsCancel="True" Width="120" Height="36" Click="BtnText_OnClick">IsCancel</Button>
<Button Name="BtnText2" IsDefault="True" Width="120" Height="36" Margin="5" Click="BtnText2_OnClick" >IsDefault</Button>
        private void BtnText_OnClick ( object sender, RoutedEventArgs e )
{
MessageBox.Show("你触发了IsCanel按钮");
} private void BtnText2_OnClick ( object sender, RoutedEventArgs e )
{
MessageBox.Show("你触发了IsDefault按钮");
}

ToggleButton控件和RepeatButton控件

ToggleButton类:该类表示具有两个状态的按钮(按下状态和未按下状态)。当单击按钮时,他会保持按下状态,知道再次单击该按钮以释放它为止,有人称其为“粘贴单击”行为,这个控件一般情况下不单独使用,用于构建更加强大的CheckBox和RaddioButton类。

RepeatButton类:只要按钮保持按下状态,该类就不断触发Click事件,对于普通的按钮,用户每次单击只触发一个Click事件

ToolTip

<Button Name="BtnText2" ToolTip="你好啊" Click="BtnText2_OnClick" >IsDefault</Button>
ToolTipService.SetInitialShowDelay ( BtnText2, 3000 );
<Button ToolTip="fafdsafa" ToolTipService.InitialShowDelay="1000"></Button>

Button控件的更多相关文章

  1. [原创]在Framelayout中放置button控件出现的覆盖问题

    android Framelayout(帧布局)是很常用的布局,主要用来处理需要多个view叠加显示的情况. 然而在使用中,我发现Framelayout中的Button控件,会挡住所有其他控件,而不论 ...

  2. asp.net动态生成按钮Button控件

    1.动态生成button控件及响应服务端和客户端事件 void BindButtons(){ foreach (var item in items) { Button Btn = new Button ...

  3. WPF--Blend制作Button控件模板--问题补充

    补充记录Button控件模板 控件模板制作过程中出现下图问题:动画对象不能用于动画属性"Fill” 并且这类问题Blend4中包括VS2010中仍然可以运行,但是只有VS2010中会报错:如 ...

  4. WPF--Blend制作Button控件模板

    博客园新人,WPF初学者.不涉及理论知识,直接进入操作. 记录一下使用Blend制作Button控件模板过程中,学到Blend几个知识点: 1.渐变画笔编辑器的Alpha选项可以调控件的透明度.即下图 ...

  5. C# Windows - Button 控件

    .Net Framework提供了一个派生于Control的类System.Windows.Forms.ButtonBase,它实现了Button控件所需的基本功能. System.Windows.F ...

  6. JS 获取Button控件的提交类型

    <script type="text/javascript"> <!--获取button控件的类型---> function isAuditOrCancel ...

  7. extjs的button控件fireEvent('click')无效问题

    extjs的button控件fireEvent('click')无效问题 2012-06-06 16:39 891人阅读 评论(0) 收藏 举报 extjsbuttoncallbackfunction ...

  8. listView中的button控件获取item的索引

    在listview中的listitem设置事件响应,如果listitem中有button控件,这时候listitem就不会捕获到点击事件,而默认的是listitem中的button会捕获点击事件.那么 ...

  9. WPF 自定义Button控件及样式

    这次通过最近做的小例子说明一下自定义Button控件和样式. 实现的效果为:

  10. UGUI Button控件

    今天一起来学习下Button控件, Button控件其实是由Text,Button,Image组件形成的. 这里就简单介绍下Button组件 Interactable: 代表该组件是否进行交互, 我们 ...

随机推荐

  1. iOS XMPP(1)

    关键词: 即时通讯技术 协议   了解xmpp的目的,工作原理   XMPP是基于XML的协议,传送的是XML格式流;IP地址:联网时电脑的唯一标识  Mac地址:不联网时电脑的唯一标志; OSI七层 ...

  2. avoid null value in field

    Each bean should implements 'InitializingBean'

  3. Guava: 事件总线EventBus

    EventBus 直译过来就是事件总线,它使用发布订阅模式支持组件之间的通信,不需要显式地注册回调,比观察者模式更灵活,可用于替换Java中传统的事件监听模式,EventBus的作用就是解耦,它不是通 ...

  4. (转载)Java NIO:NIO原理分析(二)

          NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用 ...

  5. poj 2411 状态压缩dp

    思路:将每一行看做一个二进制位,那么所有的合法状态为相邻为1的个数一定要为偶数个.这样就可以先把所有的合法状态找到.由于没一层的合法状态都是一样的,那么可以用一个数组保存.由第i-1行到第i行的状态转 ...

  6. .net中判断该应用程序是否已经启动,防止重复启动,监控程序启动是否正常

    //获取配置文件中的需要监控项 private static string MonitorServe = ConfigurationSettings.AppSettings["Monitor ...

  7. zookeeper启动报错(数据目录权限不对)

    zookeeper启动报错日志: 2016-11-16 11:19:43,880 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@ ...

  8. Android获取屏幕宽度的4种方法

    方法一: WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); int width = w ...

  9. IOS中的内存不足警告处理(译)

    由于在IOS中虚拟内存系统不会采用页置换的方式来获取请求内存,取而代之的是它通过移除应用程序中的强引用来释放一些内存资源,我们知道强引用在IOS中表示拥有关系,只要有至少一个变量拥有这个对象,那么对象 ...

  10. Objective-C 【关于导入类(@class 和 #import的区别)】

    之前我们分析过 #include 和 #import 的区别,#import不会引起交叉编译,#import 确定一个文件只能被导入一次,使在递归包含中不会出现问题. 那么 #import 和 @cl ...