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="
<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>
在上面的代码中,定义了Page的Resources,这个很像Html中的Css,是用来提供一些通用控件的通用属性。由于<Style TargetType="{x:Type Button}">,所有Button的属性都采用本Style中的属性。
上面代码的效果为:
下面再看一下这段代,不同之处在<Style x:Key="SystemResStyle" TargetType="{x:Type Button}">,此处只有在引用SystemResStyle的Button才有资源的属性,引用方法如下: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="
<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组织。
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524