WPF 自定义雷达图开发实例教程

2019-12-30 13:54:41刘景俊

2、创建标题类按钮控件,定义名称为ChartButton

wdf,雷达图

wdf,雷达图

前台:


<UserControl x:Class="WpfApplication2.ChartButton"
  xmlns="http://www.easck.com/winfx/2006/xaml/presentation"
  xmlns:x="http://www.easck.com/winfx/2006/xaml"
  xmlns:mc="http://www.easck.com/markup-compatibility/2006" 
  xmlns:d="http://www.easck.com/expression/blend/2008" 
  mc:Ignorable="d"
  d:DesignHeight="80" d:DesignWidth="200" Loaded="ChartButton_OnLoaded">
 <UserControl.Resources>
 <Style TargetType="Button">
  <Setter Property="Foreground" Value="White"></Setter>
 </Style>
 </UserControl.Resources>
 <Grid>
 <Button x:Name="MyButton" VerticalAlignment="Center" HorizontalAlignment="Center">
  <Button.Template>
  <ControlTemplate TargetType="{x:Type Button}">
   <Grid x:Name="ButtonGrid" Height="{TemplateBinding Height}">
   <Rectangle x:Name="ButtonRetc" RadiusX="20" RadiusY="25" Stroke="#FF06FFE8"></Rectangle>
   <StackPanel Orientation="Horizontal" Margin="20,5" HorizontalAlignment="Center">
    <Rectangle Height="{Binding IconHeight}" Width="{Binding IconWidth}">
    <Rectangle.Fill>
     <ImageBrush ImageSource="{Binding Icon}"></ImageBrush>
    </Rectangle.Fill>
    </Rectangle>
    <TextBlock x:Name="ButtonTextBlock" Text="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" Margin="8,-2,0,0" FontSize="22" VerticalAlignment="Center" TextAlignment="Center"></TextBlock>
   </StackPanel>
   </Grid>
   <ControlTemplate.Triggers>
   <DataTrigger Binding="{Binding ElementName=MyButton,Path=IsFocused}" Value="True">
    <DataTrigger.Setters>
    <Setter TargetName="ButtonRetc" Property="Fill" Value="#FFA9BCFF"></Setter>
    <Setter TargetName="ButtonRetc" Property="StrokeThickness" Value="0.5"></Setter>
    <Setter TargetName="ButtonTextBlock" Property="Foreground" Value="#FF06FFE8"></Setter>
    </DataTrigger.Setters>
   </DataTrigger>
   <DataTrigger Binding="{Binding ElementName=MyButton,Path=IsPressed}" Value="true">
    <DataTrigger.Setters>
    <Setter TargetName="ButtonTextBlock" Property="FontWeight" Value="Bold"></Setter>
    </DataTrigger.Setters>
   </DataTrigger>
   <DataTrigger Binding="{Binding ElementName=MyButton,Path=IsFocused}" Value="false">
    <DataTrigger.Setters>
    <Setter TargetName="ButtonRetc" Property="Fill" Value="Transparent"></Setter>
    <Setter TargetName="ButtonRetc" Property="StrokeThickness" Value="0"></Setter>
    </DataTrigger.Setters>
   </DataTrigger>
   </ControlTemplate.Triggers>
  </ControlTemplate>
  </Button.Template>
 </Button>
 </Grid>
</UserControl>