//Create my grid and child controls
var layoutRoot = new System.Windows.Controls.Grid
{
Background = new SolidColorBrush(Colors.Blue),
Name = "layaoutRoot1",
Height = 400.0,
VerticalAlignment = System.Windows.VerticalAlignment.Stretch,
HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch
};
layoutRoot.ColumnDefinitions.Add(new ColumnDefinition()
{
Width = new GridLength(1, GridUnitType.Auto)
});
layoutRoot.ColumnDefinitions.Add(new ColumnDefinition()
{
Width = new GridLength(1, GridUnitType.Star)
});
var myImage = new Image
{
Source = new BitmapImage(new Uri(@"C:\Path\to\Image\img.png")),
Stretch = Stretch.UniformToFill,
Margin = new Thickness(3),
Width = 50.0,
Height = 50.0,
};
var textBlocklbl = new TextBlock
{
Text = "Label Here",
FontFamily = new FontFamily("Arial"),
FontSize = 14.0,
FontWeight = FontWeights.Bold,
Margin = new Thickness(3)
};
layoutRoot.Children.Add(myImage);
layoutRoot.Children.Add(textBlocklbl);
System.Windows.Controls.Grid.SetColumn(myImage, 0);
System.Windows.Controls.Grid.SetColumn(textBlocklbl, 1);
grid1.Children.Add(layoutRoot); //grid1 is placed on the MainWindow
Storyboard myStorboard = new Storyboard();
DoubleAnimation myDoubleAnimation = new DoubleAnimation();
myDoubleAnimation.From = 0.0;
myDoubleAnimation.To = 300.0;
myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(3));
myDoubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
//myDoubleAnimation.AutoReverse = true;
myStorboard.Children.Add(myDoubleAnimation);
Storyboard.SetTargetName(myDoubleAnimation, layoutRoot.Name);
Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(System.Windows.Controls.Grid.HeightProperty));
myStorboard.Begin();
Run Code Online (Sandbox Code Playgroud)
您的动画找不到动画源。TargetName除非将动画放入逻辑树中,否则设置将不起作用。使用StoryBoard.SetTarget(layoutRoot)代替StoryBoard.SetTargetName(layoutRoot.Name)。
这是您可以解决的方法:
1)首先,您可以调试它。您只需在Visual Studio中以调试模式启动代码,然后继续查看Output窗口,直到看到错误为止。我相信您很快就会在这里看到-然后可以对其进行修复。您仍然有可能看不到任何错误。
2)其次,您应该尝试再次调试它。获取您的代码,将其粘贴到干净的解决方案中。还是不行?大!继续删除看起来与问题无关的部分代码。VerticalAlighnment,,HorizontalAlignment您真的需要它们吗?没有这些属性,该问题是否可以重现?删除它们。更少的代码-更易于调试。好的,最终您有10行代码,但仍然无法正常工作。从正在运行的MSDN中获取一个样本,该样本看起来与您越近越好,并找到不同之处。您甚至可以用MSDN替换部分代码,以查看它是否有帮助。
3)好吧,它仍然不起作用,您还没有找到任何示例,也没有办法调试它-您需要社区帮助。正确地提出问题。如果您是专业开发人员,那么您可能已经看过很多次了-用户只发表了一条声明it doesn't work。您必须自己完全测试/调试/修复它。但是这些是您的客户,他们最终会向您付款。这是一个自由的社区,仅代表我们的利益而驱动。如果我们不愿意回答您的问题-我们将永远不会回答。因此,提出一个值得回答的问题。粘贴不起作用的代码是不够的。您还应该提供有关无效部分的信息。以及您尝试自己修复的内容。如果我们认为您正在尝试利用我们-我们将不会回答您的问题。
谢谢你的时间。
更新好,只是尝试调试它。就像我说的那样。您的代码给出了一个layoutRoot找不到的异常。确切的消息是:No applicable name scope exists to resolve the name 'layaoutRoot1'.。就像您说的那样,您只需要在VS中运行自己的代码即可。