WPF 在xaml中控制背景变化

start1208ab 2013-10-30 03:58:00
当鼠标放上去时 背景加亮
当鼠标离开后 背景还原

求教!
谢谢
...全文
420 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇峰科技 2013-11-15
  • 打赏
  • 举报
回复
上面的不错了,,,,
小猪八Q 2013-11-13
  • 打赏
  • 举报
回复
引用 7 楼 tang3567 的回复:
弄错了,原来我用的是代码,下面是一个XAML的实现 来源

<Grid x:Name="LayoutRoot" Height="300" Width="400" Background="Blue">
        <Grid.Style>
            <Style>
                <Style.Triggers>
                    <EventTrigger RoutedEvent="Mouse.MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                                    From="Red" To="Green" Duration="00:00:03" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>

                    <EventTrigger RoutedEvent="Mouse.MouseLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                                    From="Green" To="Red" Duration="00:00:03" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Grid.Style>
    </Grid>
参考
这个可以,同样,也可以使用controlTemplate样式模版,使用Trigger也可以,不一定非要使用EventTrigger,看你的情况了
tang3567 2013-11-05
  • 打赏
  • 举报
回复
弄错了,原来我用的是代码,下面是一个XAML的实现
来源

<Grid x:Name="LayoutRoot" Height="300" Width="400" Background="Blue">
<Grid.Style>
<Style>
<Style.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
From="Red" To="Green" Duration="00:00:03" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>

<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
From="Green" To="Red" Duration="00:00:03" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>


参考
tang3567 2013-11-04
  • 打赏
  • 举报
回复
以前有过一个,但是太久了,不记得了
<DoubleAnimation Storyboard.TargetProperty="BackgroudlColor" From="#FFFFF" To="#000000" Duration="0:0:10"  />
瞎写的,大概意思就这样 明早有环境我再试试
  • 打赏
  • 举报
回复
引用 4 楼 gusto 的回复:
[quote=引用 2 楼 MicrosoftCenterOfHN 的回复:] xaml本来就是用来做UI设计的,你为什么不能把一部分逻辑放到后台代码中呢(如xaml.cs)。 而非得提出这种奇特的需求。
这个需求不奇特啊。这不就是动态UI设计嘛?正是XAML大放异彩的地方。 <EventTrigger RoutedEvent="MouseEnter"> <BeginStoryboard> <Storyboard> <!-- 改变背景的动画> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="MouseLeave"> <BeginStoryboard> <Storyboard> <!-- 恢复背景的动画> </Storyboard> </BeginStoryboard> </EventTrigger> [/quote] 嗯,这样也可以。不过动画使用太多会导到性能问题。如果仅仅是简单的切换背景图片,直接在事件里面处理相对高效一些。
gusto 2013-11-02
  • 打赏
  • 举报
回复
引用 2 楼 MicrosoftCenterOfHN 的回复:
xaml本来就是用来做UI设计的,你为什么不能把一部分逻辑放到后台代码中呢(如xaml.cs)。 而非得提出这种奇特的需求。
这个需求不奇特啊。这不就是动态UI设计嘛?正是XAML大放异彩的地方。 <EventTrigger RoutedEvent="MouseEnter"> <BeginStoryboard> <Storyboard> <!-- 改变背景的动画> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="MouseLeave"> <BeginStoryboard> <Storyboard> <!-- 恢复背景的动画> </Storyboard> </BeginStoryboard> </EventTrigger>
b63651216 2013-11-02
  • 打赏
  • 举报
回复
触发器......
  • 打赏
  • 举报
回复
xaml本来就是用来做UI设计的,你为什么不能把一部分逻辑放到后台代码中呢(如xaml.cs)。 而非得提出这种奇特的需求。
start1208ab 2013-10-30
  • 打赏
  • 举报
回复
初学者,求 注释说明! 再次 谢谢

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧