﻿<UserControl x:Class="Util.SB.StatusBtn"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Util.SB"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Util.ManualDebug;component/ManualDebugStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>

            <Style x:Key="StatusTextStyle" TargetType="TextBlock">
                <Setter Property="HorizontalAlignment" Value="Center"/>
                <Setter Property="VerticalAlignment" Value="Center"/>
                <Setter Property="FontWeight" Value="SemiBold"/>
                <Setter Property="FontSize" Value="12"/>
                <Setter Property="Text" Value="-"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.NG}">
                        <Setter Property="Text" Value="NG"/>
                        <Setter Property="Foreground" Value="#FFF"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.OK}">
                        <Setter Property="Text" Value="OK"/>
                        <Setter Property="Foreground" Value="#FFF"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.Testing}">
                        <Setter Property="Text" Value="TESTING"/>
                        <Setter Property="Foreground" Value="#FFF"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>

            <!-- 状态边框样式 -->
            <Style x:Key="StatusBorderStyle" TargetType="Border">
                <Setter Property="Background" Value="{StaticResource StatusDefaultBrush}"/>
                <Setter Property="CornerRadius" Value="2"/>
                <Setter Property="HorizontalAlignment" Value="Center"/>
                <Setter Property="Width" Value="100"/>
                <Setter Property="Height" Value="24"/>
                <Setter Property="Margin" Value="0,5,0,0"/>

                <Style.Triggers>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.NG}">
                        <Setter Property="Background" Value="{StaticResource StatusNGBrush}"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.OK}">
                        <Setter Property="Background" Value="{StaticResource StatusOKBrush}"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.Testing}">
                        <Setter Property="Background" Value="{StaticResource StatusTestingBrush}"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>

            <Style x:Key="btnStyle" TargetType="Button" BasedOn="{StaticResource DebugButtonStyle}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static local:DebugStatus.Testing}">
                        <Setter Property="IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ResourceDictionary>

    </UserControl.Resources>
    <StackPanel>
        <Button x:Name="btn" Content="{Binding Title}" Style="{StaticResource btnStyle}" Click="Button_Click"/>
        <Border Style="{StaticResource StatusBorderStyle}">
            <TextBlock Style="{StaticResource StatusTextStyle}"/>
        </Border>
    </StackPanel>
</UserControl>
