我想将动画添加到我拥有的DataGrid中。基本上,当用户从右侧(最后一个单元格)选择一行时,两个按钮将滑入视图。当鼠标离开行时,按钮会向后滑动。
现在我有了它,所以按钮出现在RowDetailsTemplate中(并且让它在鼠标离开行时细节消失)。这是功能性的,但希望得到一点点发烧友。这是我目前的实施:
<Style TargetType="DataGridRow">
<Style.Triggers>
<EventTrigger RoutedEvent="DataGridRow.MouseDown">
<BeginStoryBoard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="AckButton"
Storyboard.TargetProperty="(Button.Width)"
To="100" Duration="0:0:3"/>
<DoubleAnimation
Storyboard.TargetName="RemButton"
Storyboard.TargetProperty="(Button.Width)"
To="100" Duration="0:0:3"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
相反,我想做更多的事情:
"proxy": "http://localhost:5001"
我认为我失败的地方是我希望将这些幻灯片放到最后一个单元格中(大于它需要基于数据的大小,因此有空间)。
我是否应该查看DataGridTemplateColumn以创建我自己的自定义列,该列适应左侧水平对齐的文本和右侧对齐的一个或两个按钮?或者我应该创建两个额外的列,每个按钮一个?
我在列方法中看到的唯一问题是我不希望通常显示这些列,并且当按钮显示时,我想隐藏它们是单独列的事实。
我正在研究的另一种方法实际上是将按钮绘制为矩形,基本上在行的顶部有一个叠加层,但我认为这是一个更复杂的方法。但也许不是吗?
感谢您的帮助。更喜欢指向可以提供帮助的API,我不是在寻找有人为我编写此代码;)
答案 0 :(得分:0)
啊,我刚刚为DataGridTemplateColumn找到了这个例子:
<DataGridTemplateColumn Header="My Item">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding MyImage}" />
<TextBlock Text="{Binding MyText}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
不幸的是,现在工作的开发环境已经崩溃,所以我无法测试它,但看起来我可以使用按钮创建一个面板,以0宽度开始它们的大小,然后设置宽度的动画单击,然后当鼠标离开时,将它们设置为回到宽度0。