C# 动态更改画布对象的图像源
我有一个在计时器上运行的动画和一些其他动画。我希望能够在触发事件时更改图像源文件,但我当前无法访问element.source(元素等于当前画布对象,即图像)C# 动态更改画布对象的图像源,c#,wpf,C#,Wpf,我有一个在计时器上运行的动画和一些其他动画。我希望能够在触发事件时更改图像源文件,但我当前无法访问element.source(元素等于当前画布对象,即图像) publicstaticvoidclouds(画布,int-boundry) { var random=新的random(); foreach(canvas.Children中的FrameworkElement元素) { var elementName=Regex.Split(element.Name,“”); if(elementNam
publicstaticvoidclouds(画布,int-boundry)
{
var random=新的random();
foreach(canvas.Children中的FrameworkElement元素)
{
var elementName=Regex.Split(element.Name,“”);
if(elementName[0]=“cloud”)
{
if(Canvas.GetLeft(元素)
任何帮助都会很好,谢谢。因为FrameworkElement没有名为Source的属性,所以您必须强制转换或选择所需的图像元素 像这样的事情可能有用
public static void Clouds(Canvas canvas, int boundry)
{
var random = new Random();
foreach (var image in canvas.Children.OfType<Image>())
{
if (image.Name.Contains("cloud_"))
{
if (Canvas.GetLeft(image) < canvas.ActualWidth + image.Width)
{
Canvas.SetLeft(image, Canvas.GetLeft(image) + 1);
}
else
{
Canvas.SetTop(image, random.Next(0 - ((int)image.Height / 2), Core.GetPercentage((int)canvas.ActualHeight, boundry)));
Canvas.SetLeft(image, 0 - image.Width);
}
}
}
}
publicstaticvoidclouds(画布,int-boundry)
{
var random=新的random();
foreach(canvas.Children.OfType()中的var图像)
{
if(image.Name.Contains(“cloud”)
{
if(Canvas.GetLeft(image)
现在,您将能够访问源属性,因为var“image”是一个图像您在画布中寻找什么类型的元素。Children?所有的子元素都是图像,所以只需一个图像谢谢,我将检查此项并向HQ报告
public static void Clouds(Canvas canvas, int boundry)
{
var random = new Random();
foreach (var image in canvas.Children.OfType<Image>())
{
if (image.Name.Contains("cloud_"))
{
if (Canvas.GetLeft(image) < canvas.ActualWidth + image.Width)
{
Canvas.SetLeft(image, Canvas.GetLeft(image) + 1);
}
else
{
Canvas.SetTop(image, random.Next(0 - ((int)image.Height / 2), Core.GetPercentage((int)canvas.ActualHeight, boundry)));
Canvas.SetLeft(image, 0 - image.Width);
}
}
}
}