前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >silverlight2中的定时器,以及如何动态改变控件的坐标

silverlight2中的定时器,以及如何动态改变控件的坐标

作者头像
菩提树下的杨过
发布2018-01-22 17:53:18
6630
发布2018-01-22 17:53:18
举报
文章被收录于专栏:菩提树下的杨过

参考了园子里nasa写里的定时器的用法,以及旋转木马的部分代码,弄了一个小小的示例,贴在这里方便以后备查

目的:让某一个控件沿着圆形轨迹运动

xaml:采用Canvas布局,通过动态修改控件的Margin值来改变位置

cs代码:利用定时器触发来设置Margin值 

xaml内容:

Code

代码语言:js
复制

<UserControl
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SilverlightApplication2.Page"
    Width="300" Height="300" xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> 

 <Canvas x:Name="LayoutRoot" Background="White">
 
 <TextBlock x:Name="txtTime" Height="10" Width="10" Text="A" Canvas.Left="10" Canvas.Top="10" FontSize="12" Foreground="Red" />
 <Ellipse Height="200" Width="200" Canvas.Left="10" Canvas.Top="10" Fill="{x:Null}" Stroke="#22000000" Canvas.ZIndex="-1"/>
 
 
 </Canvas>
</UserControl>

cs代码:

Code

代码语言:js
复制
using System;
using System.Windows.Controls;
using System.Windows.Threading;

namespace SilverlightApplication2
{
 public partial class Page : UserControl
    {
 public Page()
        {
 
            InitializeComponent();
            DispatcherTimer dt = new DispatcherTimer();
            dt.Interval = new TimeSpan(0, 0, 0, 0, 100); // 50 Milliseconds
            dt.Tick += new EventHandler(dt_Tick);
            dt.Start();   
        }

 int angle = 0;
 int radius = 100;        

 void dt_Tick(object sender, EventArgs e)
        {
 
            angle = angle + 1;
            txtTime.Text = new System.Random().Next(1, 10).ToString();
 //Margin.Left = 半径*sin(角度),Margin.Top = 半径*cos(角度)--注意:角度要换成弧度,同时加上平移量
            txtTime.Margin = new System.Windows.Thickness(radius * Math.Cos(angle * Math.PI / 180) + radius, radius * Math.Sin(angle * Math.PI / 180) + radius, 0, 0);
 if (angle > 360) { angle = 0; }
        }


    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2009-03-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档