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应用程序的专家,但我发现,它可能会帮助您: