作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个包含大量动画的 Windows 手机应用程序。我需要的是当应用程序启动时,应该完成第一个动画,比如 myS() 是 Storyboard的名称。只有在完成动画后,文本 block 才会在 3 秒后出现。我应该使用什么方法让文本框的显示等待 Storyboard 完成?我尝试的是使用 Thread.Sleeps(10000) 但这不起作用。这是代码-
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
c1.Visibility = Visibility.Collapsed; //c1 is the name of the textbox
myS.Begin();
canDisp();
}
private void e1_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
myS1.Begin();
}
private void e1_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
myS2.Begin();
}
void canDisp()
{
c1.Visibility = Visibility.Visible;
}}
在 myS.Begin() 执行完成后,我想让程序等待 3 秒,然后执行 canDisp() 方法,我该如何实现?
最佳答案
如果您的动画是 Storyboard
,那么它有一个 Completed
事件 ( MSDN link ) 就是为了这个目的。
您对 Thread.Sleep()
的调用可能与动画在同一线程上运行,因此在动画休眠时停止运行。
如果你真的想走这条路,那么你需要将你的 sleep 调用移到另一个线程。
如果你真的想使用线程,一个简单的方法是:
System.Threading.ThreadPool.QueueUserWorkItem(obj =>
{
System.Threading.Thread.Sleep(5000);
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("after delay");
});
});
关于c# - 如何在 Windows Phone 中实现等待特定时间的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659666/
我是一名优秀的程序员,十分优秀!