1

私はWPFを始めたばかりで(質問があまりにも明白である場合は申し訳ありません)、このマウスオーバースタイルをまとめることができました。背景色はより暗い色にアニメートされます。また、テキストを白にアニメーション化して、読みやすくしたいと思います。

これは私がそれを追加しようとした方法ですが、マウスオーバーすると「プロパティパス'TextBlock.Foreground'のすべてのプロパティ参照を解決できません。該当するオブジェクトがプロパティをサポートしていることを確認してください」というエラーが表示されます。

<Border Background="#e6ebf3" CornerRadius="0,10,0,10" >
    <Border.Style>
        <Style TargetType="Border">
            <Setter Property="Background" Value="#e6ebf3" />
            <Setter Property="TextBlock.Foreground" Value="Black"/>
            <Style.Triggers>
                <EventTrigger RoutedEvent="UIElement.MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Background.Color" To="#6d809b" />
                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="TextBlock.Foreground" To="white" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger RoutedEvent="UIElement.MouseLeave">
                     <BeginStoryboard>
                         <Storyboard>
                             <ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Background.Color" To="#e6ebf3" />
                            <ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="TextBlock.Foreground" To="Black" />
                         </Storyboard>
                     </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
         </Style>
     </Border.Style>........
4

2 に答える 2

1

ストーリーボードやアニメーションを使わずに別の方法を見つけたので、念のために投稿します。しかし、まだ元のものについて疑問に思っています。

<Border CornerRadius="0,10,0,10" >
<Border.Style>
     <Style TargetType="Border">
          <Setter Property="Background" Value="#e6ebf3" />
          <Setter Property="TextBlock.Foreground" Value="Black"/>

          <Style.Triggers>
               <Trigger Property ="IsMouseOver" Value="True">
                    <Setter Property= "Background" Value="#6d809b"/>
                    <Setter Property= "TextBlock.Foreground" Value="White"/>
               </Trigger>
          </Style.Triggers>
     </Style>
 </Border.Style>
 ...
于 2012-11-19T02:35:50.827 に答える
1

TextBlock.Foregroundである間接的なプロパティターゲティングについては、http://msdn.microsoft.com/en-us/library/ms742451.aspxで説明されています。基本的には、「タイプボタンにTextBlockというプロパティが見つかりませんでした」と言っています。これは、BackgroundプロパティがButtonに存在し、それ自体がColorタイプのプロパティを持つColorBrushタイプであるため、Background.Colorで機能します。

于 2012-11-19T04:23:01.040 に答える