Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 将TranslateTransform.Y设置为控件动画';s高度(用于将元件滑离视线)_Wpf_Xaml_Blend_Vsm - Fatal编程技术网

Wpf 将TranslateTransform.Y设置为控件动画';s高度(用于将元件滑离视线)

Wpf 将TranslateTransform.Y设置为控件动画';s高度(用于将元件滑离视线),wpf,xaml,blend,vsm,Wpf,Xaml,Blend,Vsm,给定:使用VisualStateManager控件(x:Name=“border1”)。控件的RenderTransform设置为包含TranslateTransform的TransformGroup 在VisualState“NotShowed”中,TranslateTransformsY属性应设置为值,即(至少)正在翻译的控件的高度(有效地使其不可见-ClipToBounds设置为真) 这是混合生成的代码: <VisualState x:Name="NotShown">

给定:使用
VisualStateManager
控件(x:Name=“border1”)。控件的
RenderTransform
设置为包含
TranslateTransform
TransformGroup

VisualState
“NotShowed”中,
TranslateTransform
s
Y
属性应设置为
值,即(至少)正在翻译的控件的高度(有效地使其不可见-
ClipToBounds
设置为真)

这是混合生成的代码:

<VisualState x:Name="NotShown">
    <Storyboard>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="border1">
            <EasingDoubleKeyFrame KeyTime="0" Value="{Binding ActualHeight, ElementName=border1}"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

编辑(2):
{Binding ActualHeight,ElementName=border1}
根本不起作用。当从VS而不是混合运行时,有一个提示:

找不到的治理FrameworkElement或FrameworkContentElement 目标元素。BindingExpression:Path=ActualHeight;DataItem=null; 目标元素为“EasingDoubleKeyFrame”(HashCode=57957548);目标 属性为“Value”(类型为“Double”)

如何正确设置此动画的内容

  • 您在ControlTemplate中,因此必须使用
    TemplateBinding
    而不是
    Binding
  • 绑定
    /
    模板绑定
    仅在
    框架元素
    上“起作用”(
    测量双关键帧
    是一个
    依赖对象
    ,而不是
    框架元素
    )。所以你必须在代码隐藏中制作动画

  • 改变了部分,猜测可能会出什么问题。。。包括我以前不知道的VS输出。更新:使EasingDoubleKeyFrame成为border1的资源。现在至少绑定可以工作了。还有更多。。。。。。并按预期工作。我可以责怪Blend生成了那个代码吗?虽然工作不好。。。和混合在状态之间切换时崩溃。:/对这个话题有什么评论吗?