首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF中的故事板彩色动画后的旧颜色

WPF中的故事板彩色动画后的旧颜色
EN

Stack Overflow用户
提问于 2016-04-29 22:39:07
回答 1查看 183关注 0票数 0

我有一个数据集,行的颜色是由一个级别参数决定的,我在行样式中进行转换。这很好,但现在我也希望在我用鼠标进入行时临时更改颜色,并拖放(在离开或删除时更改)。我设法用以下代码更改颜色:

代码语言:javascript
运行
复制
<DataGrid.RowStyle>
            <Style TargetType="DataGridRow" BasedOn="{StaticResource MyDataGridRowStyle}">
                <Setter Property="Background" Value="{Binding Level,Converter={StaticResource LevelToIndentConverter}}" />
                    <Style.Triggers>
                    <EventTrigger RoutedEvent="DataGridRow.DragEnter">
                        <BeginStoryboard x:Name="DragHoverStoryboard">
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Background.Color" 
                                Duration="0:0:0" To="#41B1E1"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="DataGridRow.DragLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="Background.Color" 
                                Duration="0:0:0" To="Transparent" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.RowStyle>

问题是回到原来的颜色。目前,我必须在DragLeave事件触发器中作为透明的,但我希望它是我的“旧”颜色。

我试着做一个简单的绑定(和我的setter一样),但是我得到了异常,并且看到你不能绑定颜色动画。那么,还有什么东西我可以用或避开这个问题吗?总之,我只想这样做:

  1. 鼠标拖放进入行
  2. 行更改为颜色x
  3. 鼠标离开行(或我删除)
  4. 行更改为它的颜色y(其中y对于不同的行是不同的,所以不是硬编码)。
EN

回答 1

Stack Overflow用户

发布于 2016-04-29 22:45:33

然后将其添加到动画中,并移除第二个动画。

代码语言:javascript
运行
复制
FillBehavior="Stop"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36948534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档