C# 我想在我的应用程序上有一个边框高亮动画

C# 我想在我的应用程序上有一个边框高亮动画,c#,loops,animation,uwp,border,C#,Loops,Animation,Uwp,Border,我想在我点击按钮后,会出现一个动画,并降落在图片上,这是随机数,但我在谷歌上找不到任何东西 我试着用谷歌搜索,四处打听,但仍然没有得到我想要的 public sealed partial class FilePage : Page { DataPage value = new DataPage(); Random _random = new Random(); private int time = 0; Dispatcher

我想在我点击按钮后,会出现一个动画,并降落在图片上,这是随机数,但我在谷歌上找不到任何东西

我试着用谷歌搜索,四处打听,但仍然没有得到我想要的

public sealed partial class FilePage : Page
    {
        DataPage value = new DataPage();
        Random _random = new Random();
        private int time = 0;
        DispatcherTimer Timer;

        public FilePage()
        {
            this.InitializeComponent();
        }

        private void ButtonClick1(object sender, RoutedEventArgs e)
        {

 //////////
 //////////cut some off to keep this short (turning the border black again)
 //////////


            Timer = new DispatcherTimer();
            Timer.Interval = new TimeSpan(0, 0, 3);
            Timer.Tick += Timer_Tick;
            Timer.Start();
        }

        public void Timer_Tick(object sender, object e)
        {
            int value = _random.Next(1, 13);
            ((Grid)gMainGrid.FindName($"g{value}")).BorderBrush = new SolidColorBrush(Colors.White);
            Timer.Stop();
            SpinnerSecond.Visibility = Visibility.Collapsed;

            DataWatch.valueWatch = value;
            RollKnop.Visibility = Visibility.Visible;



        }
    }
}

所以我想制作一个跨越边界的动画,如下所示:
例如3秒钟,然后降落到右边,如果我听起来像是一个需求者,我很抱歉,但我已经在谷歌上搜索了2天了

很确定你必须使用ControlPaint.DrawBorder如果图片在PictureBox中,你为一张图片绘制,在短暂延迟后,你将其删除,然后在另一张上绘制,等等
3秒钟后,你继续这样做,直到它落在好的画面上,然后你停止一切


编辑:如果还没有完成,您可能需要检查:

简而言之,您可以创建一个循环,遍历容器内的元素,并为它们设置
边界笔刷和
边界厚度

这是一个简单的代码示例:

ColorBorderPage.xaml


我创建了一个名为
ItemsContainer
的面板,它将图像替换为
StackPanel
,并添加一个按钮来触发动画

ColorBorderPage.xaml.cs

private async void按钮\u单击(对象发送方,路由目标)
{
int count=ItemsContainer.Children.count;
int指数=0;
while(true)
{
var item=ItemsContainer.Children[index]作为StackPanel;
item.BorderBrush=新的SolidColorBrush(颜色为浅绿色);
项目边界厚度=新厚度(3);
等待任务。延迟(3000);
item.BorderThickness=新厚度(0);
索引=索引==计数-1?0:索引+1;
}
}
在代码中,首先获取容器中子元素的数量,然后通过while循环逐个设置
边框
,并在循环结束时重新启动

根据动画要求,您可以使用
Task.Delay()
,这将在继续下一步之前延迟指定的时间


这只是一个示例,但它应该能够满足您的需要,您只需将
堆栈面板
替换为
图像


问候。

13张图片,窗口上的1个按钮我的图片在网格中:需要更改吗?抱歉,我不是最好的程序员。我不是WPF应用程序的专家,但我发现,它可能会帮助您: