【问题标题】:WPF Make Column Slide into position XAMLWPF 使列滑入位置 XAML
【发布时间】:2013-12-11 23:13:29
【问题描述】:

我有一个 wPF 应用程序。我有一列在加载时将其宽度设置为零。它绑定到一个属性,当该值更改为某个值时,宽度更改为 2*。这一切都很好。

我想要添加一个动画,使列滑到网格上。它是最右边的列,因此它会从屏幕的右侧滑到左侧。阅读它听起来好像仅在 XAML 中不容易做到这一点?

编辑

这是我到目前为止所尝试的。问题是“System.Windows.Media.Animation.DoubleAnimation”动画对象不能用于动画属性“宽度”,因为它的类型不兼容 System.Windows.GridLength”。价值转换器在哪里发挥作用?

<Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition>                            
            <ColumnDefinition.Style>
                <Style TargetType="{x:Type ColumnDefinition}">
                    <Setter Property="Width" Value="10"/>
                    <Style.Triggers>                            
                        <DataTrigger Binding="{Binding OrderSelected.Name}" Value="Mark">
                            <Setter Property="Width" Value="2*"/>
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation
                                            Storyboard.TargetProperty="Width"
                                            Duration="0:0:3"
                                            AutoReverse="True"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                        </DataTrigger>                                  
                    </Style.Triggers>
                </Style>
            </ColumnDefinition.Style>
        </ColumnDefinition>
    </Grid.ColumnDefinitions>

【问题讨论】:

  • 伙计...必须先尝试一下...你不能只是来到这个网站说这就是我想要你们为我做,因为我做不到。来自 StackOverflow 'What topics can I ask about here?' help page3. 要求代码的问题必须证明对正在解决的问题有最低限度的理解。包括尝试过的解决方案、它们为什么不起作用以及预期的结果
  • 我明白你的意思。我一直在互联网上阅读以尝试找到解决方案。但是,似乎不可能阅读其他人的帖子。我最初的几次尝试非常垃圾,并且认为它不会增加任何价值。上面编辑的代码是我目前所在的位置。

标签: c# wpf xaml


【解决方案1】:

ColumnDefinitionWidth 具有 GridLength 类型,因此无法使用 DoubleAnimation 对其进行动画处理。唯一的解决方案是定义一个自定义动画类。

我发现的第一个谷歌结果是这样的:http://www.codeproject.com/Articles/18379/WPF-Tutorial-Part-2-Writing-a-custom-animation-cla这篇文章给出了一个按钮的例子,但代码也应该适用于 ColumnDefinition。

【讨论】:

    【解决方案2】:

    听起来您正在寻找FluidMoveBehavior 来让您的生活更轻松。应该不那么大惊小怪地做你正在寻找的事情。希望这可以帮助。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多