Fork me on GitHub

Button

 

说到Button应该不是陌生的,是基本控件,在WPF中,Button的基本事件和属性与其他语言中类似。看一个例子。

<Page

       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

       x:Class="Test.Page5"

       x:Name="Page"

       WindowTitle="Page"

       FlowDirection="LeftToRight"

       Width="640" Height="480"

       WindowWidth="640" WindowHeight="480">

<Page.Resources>

<Style TargetType="{x:Type Button}">

 <Setter Property="Control.Background" Value="Yellow"/>

 <Setter Property="FontFamily" Value="Segoe Black" />

 <Setter Property="FontSize" Value="20pt" />

 <Setter Property="Foreground" Value="#777777" />

</Style>

</Page.Resources>

<Canvas x:Name="LayoutRoot">

       <Button Name="btn5" HorizontalAlignment="Left" Width="358" Height="92.362" Canvas.Left="8" Canvas.Top="169">

       <Image Source="images\apple.jpg">  

          </Image></Button>

    <Button Name="btn6" BorderBrush="Black" VerticalAlignment="Top" Height="169" Content="Click." Width="358" Canvas.Left="8" Canvas.Top="-4" />

</Canvas>

</Page>

在上面的代码中,定义了PageResources,这个很像Html中的Css,是用来提供一些通用控件的通用属性。由于<Style TargetType="{x:Type Button}">,所有Button的属性都采用本Style中的属性。

上面代码的效果为:


下面再看一下这段代,不同之处在
<Style x:Key="SystemResStyle" TargetType="{x:Type Button}">,此处只有在引用SystemResStyleButton才有资源的属性,引用方法如下:Style="{StaticResource SystemResStyle }"

<Page.Resources>

<Style x:Key="SystemResStyle" TargetType="{x:Type Button}">   <Setter Property="Control.Background" Value="Yellow"/>

 <Setter Property="FontFamily" Value="Segoe Black" />

 <Setter Property="FontSize" Value="20pt" />

 <Setter Property="Foreground" Value="#777777" />

</Style>

</Page.Resources>

<Canvas x:Name="LayoutRoot">

       <Button Name="btn5"  HorizontalAlignment="Left" Width="358" Height="92.362" Canvas.Left="8" Canvas.Top="169">

       <Image Source="images\apple.jpg">  

          </Image></Button>

    <Button Name="btn6" BorderBrush="Black" VerticalAlignment="Top" Height="169" Content="Click the picture." Width="358" Canvas.Left="8" Canvas.Top="-4" Style="{StaticResource SystemResStyle }"/>

</Canvas>

</Page>

效果如下图:


 

同时,Style中还支持Triggers,代码如下:

<Style TargetType="Button">

    <Style.Triggers>

    <Trigger Property="IsMouseOver" Value="true">

        <Setter Property = "Background" Value="Red"/>

    </Trigger>

    <Trigger Property="IsPressed" Value="true">

        <Setter Property = "Background" Value="Green"/>

    </Trigger>

    </Style.Triggers>

</Style>

同样也可以给本Style设置Key值。
本文参考MSDN组织。

posted @ 2007-02-12 20:35  桂素伟  阅读(499)  评论(0编辑  收藏  举报