我试图在UWP用户控件中创建一个简单的动画,但我遇到了错误无法解析TargetName 。代码非常简单,我觉得我忽略了一些明显的东西,但我无法弄清楚。
<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创建了故事板,但它产生了相同的代码。任何帮助表示赞赏!
谢谢!
答案 0 :(得分:0)
我在Visual Studio 2017中遇到了同样的问题。我最终在自己的uwp dll中编译了usercontrol并将其添加到我的新项目作为参考。在这个问题发生后,这个问题就消失了。