我用了个Image控件,放在Canvas里,添加到窗体的grid中
grid.children.add(canvas);
System.Threading.Thread.Sleep(2000);
然后再写个方法 设置Image或者canvas的Opacity=0;然后while循环 +Opacity值
while(Image.Opacity <1)
{
Syste.Threading.Thread.Sleep(50);
Image.Opacity += 0.05;
}
结果是 事件触发后 两秒,直接显示一个Image 中间渐变的过程没了,求解
有人说用storyborad 不知道动态添加控件这个如何使用,求解
grid.children.add(canvas);
System.Threading.Thread.Sleep(2000);
然后再写个方法 设置Image或者canvas的Opacity=0;然后while循环 +Opacity值
while(Image.Opacity <1)
{
Syste.Threading.Thread.Sleep(50);
Image.Opacity += 0.05;
}
结果是 事件触发后 两秒,直接显示一个Image 中间渐变的过程没了,求解
有人说用storyborad 不知道动态添加控件这个如何使用,求解
解决方案 »
- timer.Elapsed 开启的事件不能出config中改变的值。
- C# webbrowser1 加载页面后,执行js 怎么知道js是否执行完成?
- 求一正则表达式。。?
- 2008系统下引用C++编写的Dll问题
- 输入空格是否会产生异常
- 怎么获取属性的名称-----一个先有鸡还是先有蛋的问题
- 又是窗体传值啊,知道的高手们进来看下啊,困扰我好久了,进度就此打住了
- 怎样用timer控件实现自动和手工设定调用存储过程!!
- 只让程序运行一次,激活还原前面打开的窗体
- 两个ADSL的局域网怎样通过Internet进行即时通信,高手指教?
- C#与access的问题,急!
- Dns.GetHostAddresses(hostName)获取的数组,滤去IPV6后,还是有无效的IP
public MainWindow()
{
InitializeComponent();
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
Image.Opacity += 0.05;
}
{
InitializeComponent();
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
double x = 0;
void CompositionTarget_Rendering(object sender, EventArgs e)
{
x += 0.005;
button1.Opacity = x;
}
改变透明度我会结果是 事件触发后 两秒,直接显示一个Image 中间渐变的过程没了,求解
有人说用storyborad 不知道动态添加控件这个如何使用,求解
children.add();
这个方法用上,把控件添加上去,结果就直接显示的是循环完了的渐变的过程没有了
怎么解决
按时间间隔可以使用DispatcherTimer,该计时器可以在UI线程处理;
按帧则使用CompositionTarget.Rendering事件。
在循环中使用Sleep,界面在循环时处于“假死”状态,不会看到想要的效果。在XAML中写transform和在cs中写实际是两种不同方式,本质都脱离不了DispatcherTimer或者CompositionTarget.Rendering。