UserControl动画无法解析TargetName

时间:2016-04-21 18:50:34

标签: c# xaml animation win-universal-app

我试图在UWP用户控件中创建一个简单的动画,但我遇到了错误无法解析TargetName 。代码非常简单,我觉得我忽略了一些明显的东西,但我无法弄清楚。

XAML

<UserControl
    ...
    x:Name="ManipulationMediaViewerControl"
    ...
    >
    <UserControl.Resources>
        <Storyboard x:Name="ZoomAnimation">
            <DoubleAnimation Duration="0:0:0.25" To="4" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" Storyboard.TargetName="ViewboxHost" d:IsOptimized="True"/>
            <DoubleAnimation Duration="0:0:0.25" To="4" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Storyboard.TargetName="ViewboxHost" d:IsOptimized="True"/>
        </Storyboard>
    </UserControl.Resources>

    <Grid>
        <Viewbox x:Name="ViewboxHost"
                 ManipulationMode="All"
                 Width="{Binding ElementName=ManipulationMediaViewerControl, Path=ActualWidth}"
                 Height="{Binding ElementName=ManipulationMediaViewerControl, Path=ActualHeight}">
            <Viewbox.RenderTransform>
                <CompositeTransform CenterX="0.5" CenterY="0.5" />
            </Viewbox.RenderTransform>
            <ContentPresenter />
        </Viewbox>
    </Grid>
</UserControl>

代码

using Windows.UI.Xaml.Controls;
namespace ManipulationMediaViewer
{
    public sealed partial class ManipulationMediaViewer : UserControl
    {
        public ManipulationMediaViewer()
        {
            this.InitializeComponent();
        }

        public void ZoomToFactor()
        {
            ZoomAnimation.Begin(); // Breaks here
        }
    }
}

所以我的问题是当我尝试启动ZoomAninmation.Begin();时,我得到了例外:

  

WinRT信息:无法解析TargetName ViewboxHost。额外   信息:未检测到已安装的组件。

我在不同项目中的代码非常相似,似乎工作正常(它在用户控件之外)。当这不起作用时,我删除了代码并通过Blend UI创建了故事板,但它产生了相同的代码。任何帮助表示赞赏!

谢谢!

1 个答案:

答案 0 :(得分:0)

我在Visual Studio 2017中遇到了同样的问题。我最终在自己的uwp dll中编译了usercontrol并将其添加到我的新项目作为参考。在这个问题发生后,这个问题就消失了。