ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

画像ボタンを作成してみる。

カスタムボタンを定義

とりあえず、カスタムボタンを定義し、基本的にスタイルのみ設定していみる。

<Button x:Class="MyButton"
             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:App1"
             mc:Ignorable="d" >
    <Button.Style>
        <Style TargetType="Button" >
            <Setter Property="Foreground" Value="Red" />
            <Setter Property="FontSize" Value="25" />
            <Setter Property="FontWeight" Value="Bold" />
        </Style>
    </Button.Style>

ControlTemplateでボタンの内部構成とTriggerで表示・非表示を切り替える。

状態ごとに、表示を切り替えているだけだが、上手く動いた

    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Grid>
                <Image Name="Normal" Source="/App1;component/Images/btn_normal.png"/>
                <Image Name="MouseOver" Source="/App1;component/Images/btn_mouseover.png" Visibility="Hidden"/>
                <Image Name="Pressed" Source="/App1;component/Images/btn_pressed.png" Visibility="Hidden"/>
                <Image Name="Disabled" Source="/App1;component/Images/btn_gray.png" Visibility="Hidden"/>
                <TextBlock Name="NormalText" Margin="0,5,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Text="{TemplateBinding Content}"/>
                <TextBlock Name="PressedText" Margin="0,5,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Foreground="White" Text="{TemplateBinding Content}"  Visibility="Hidden"/>
                <TextBlock Name="DisabledText" Margin="0,5,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Foreground="Gray" Text="{TemplateBinding Content}"  Visibility="Hidden"/>
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="IsPressed" Value="True">
                    <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="NormalText" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
                    <Setter TargetName="PressedText" Property="Visibility" Value="Visible"/>
                </Trigger>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="MouseOver" Property="Visibility" Value="Visible"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="NormalText" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
                    <Setter TargetName="DisabledText" Property="Visibility" Value="Visible"/>
                </Trigger>
            </ControlTemplate.Triggers>
           
        </ControlTemplate>
    </Button.Template>