2

背景が透明で、境界線が太い白いボタンがあります。ボタンがマウスの入力を検出すると、背景が設定された透明な背景からデフォルトのフォーカスされた色に変わったことがわかります。そのため、不透明度を0.2に設定して、フォーカスがあることをフィードバックします。

これが私のジレンマです。ボタンの境界を離れると、背景を元の透明に変更する前に、.2の不透明度から1に変わる小さなアニメーションがあります。これをより滑らかなアニメーションに置き換えて、不透明な背景が透明に変わる前に見えないようにする方法、またはアニメーションを完全にバイパスして値を設定する方法を知りたいです。ボタンにフォーカスがあるときにも同様のことが起こります。デフォルトの背景色で、不透明度0.2から1.0の間でアニメーション化されます。任意のアイデアをいただければ幸いです。

<Button BorderBrush="White" BorderThickness="1" Width="45" Height="45" >
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Opacity" Value="0.2" />
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Background" Value="Transparent" />
                    <Setter Property="Opacity" Value="1.0" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>
4

1 に答える 1

6

これはXAMLのみのソリューションです。これはあなたが望むことだと思います...

<Button BorderBrush="White" BorderThickness="1" Width="45" Height="45" Content="1234" >
        <Button.Style>
            <Style TargetType="{x:Type Button}">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="False">
                        <Setter Property="Background" Value="Transparent" />
                        <Setter Property="Opacity" Value="1.0" />
                    </Trigger>
                    <EventTrigger RoutedEvent="MouseLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.2" To="1"></DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.2" To="0.2"></DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
于 2012-11-20T15:40:03.857 に答える