Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >silverlight2中的定时器,以及如何动态改变控件的坐标

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

作者头像
菩提树下的杨过
发布于 2018-01-22 09:53:18
发布于 2018-01-22 09:53:18
7470
举报

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

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

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

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

xaml内容:

Code

代码语言:js
AI代码解释
复制

<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
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WPF自定义一个MessageBox
WPF的MessageBox太丑了,自己定义了一个。 这是效果: image.png XAML: <Window x:Class="AgileToDo.UMessageBox"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"         Title="UMessageBox" He
MJ.Zhou
2022/05/07
9540
WPF自定义一个MessageBox
[Silverlight动画]转向行为 - 机车
机车类是转向角色的基类,但它不提供任何转向行为,只处理与运动相关的基本内容,如位置,速度,质量以 及角色接触场景边缘后的反应(反弹还是穿越出现在另一边)。转向机车(SteeredVehicle)类继承机车类,并为之增加转向行为。使用这样的结构 其目的是为了让机车类可以用于仅需要移动而不需要转向行为的对象,同时也可以让转向机车类不考虑基本运动的细节而专心实现转向功能。 /// <summary> /// 机车类 /// </summary> public class Vehic
用户1172164
2018/01/16
9010
SplashScreenSource的妙用
默认初始屏幕体验 在托管 API 下为 Silverlight 定义的默认体验是:超出某一时间阈值(约为 0.5 秒)的任何加载都将在内容区域中显示基于 XAML 的动画。显示该默认动画和初始化序列的 XAML 被硬编码到 Silverlight 插件中。 为了替换默认初始屏幕,您为在 HTML 中定义 object 元素的 Silverlight 插件的 splashScreenSource 参数提供一个值。或者,用于 Silverlight 的 ASP.NET 控件将定义一些 API,这些 API
用户1172164
2018/01/16
6330
自学WP7第一个例子:时钟
自学WP7做的第一个程序:时钟 做的很山寨,没用素材 用TextBlock做的表盘和指针,放在一个Canvas上 RotateTransform类来控制偏移角度 MainPage.xaml <phone:PhoneApplicationPage x:Class="Clock.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micro
Porschev
2018/01/16
4890
自学WP7第一个例子:时钟
WPF-形状旋转
MaybeHC
2024/04/23
1390
WPF-形状旋转
WPF旋转板栈设计一例
项目中需要做一个机台的平面视图,点击其中一个料盒时,弹出该料盒的料管列表,用WPF示例做了一下,效果如下:
DotNet Whisperer
2025/04/13
1130
WPF旋转板栈设计一例
win10 UWP 蜘蛛网效果 在 Canvas 画一个点指定添加到 Canvas 的 Element 的位置随机移动点画线自动移动全部代码
那么我来告诉大家如何做这个效果。 第一步是在 Canvas 画点,第二步是让点移动,第三步是画线
林德熙
2018/09/18
8960
win10 UWP  蜘蛛网效果
            在 Canvas 画一个点指定添加到 Canvas 的 Element 的位置随机移动点画线自动移动全部代码
闲来无事,倒腾了一个简单的silverlight视频播放器
近二日闲来无事,把silverlight的官方文档瞅了瞅,倒腾了一个简单的视频播放器,顺便也测试了下能否播放传说中的h.264,最终效果如下: http://images.24city.com/jim
菩提树下的杨过
2018/01/24
1.8K0
WPF 不遮挡任务栏最大化和全屏显示
在窗体不去边框的情况下,不遮挡任务栏最大化 MainWindow.xaml.cs using System; using System.Windows; using System.Windows.Threading; namespace thzSoftware { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window {
zls365
2020/12/15
4.5K0
Silverlight:Mouse Avoiding 躲避鼠标效果
昨晚在一国外博客上(从域名后缀pl上猜想应该是波兰)看到这种效果(Mouse Avoid 躲避鼠标),是基于Flash/AS3开发的,这个示例把弹性运动,摩擦力,均加速运动等多种物理学原理综合运用在一
菩提树下的杨过
2018/01/22
7330
Silverlight:Mouse Avoiding 躲避鼠标效果
silverlight4:摄像头占用状态检测以及二种截屏方法
状态检测主要包括二个方面:是否安装了摄像头,摄像头是否被其它程序占用 视频截图有二种方法:一是直接利用CaptureSource类的CaptureImageAsync异步截屏,另一种是直接利用Writ
菩提树下的杨过
2018/01/23
8750
silverlight4:摄像头占用状态检测以及二种截屏方法
WPF桌面端开发-数据绑定(Binding)
此模式允许将给定的 ControlTemplate 属性绑定到应用 ControlTemplate 的控件的属性。为了更好地理解这里的问题,下面是一个示例
码客说
2023/07/11
4150
Silverlight 2 DispatcherTimer和通过XAML创建UI元素
XAML标签元素在silverlight运行时被转换成相应的对象,通过XamlReader类的Load方法,动态创建UI元素: 指定一条XAML内容字符串,为按照XML规则运行,XamlReader.Load()现在需要你在你的XAML文件中指定一个xmlns; 通过XamlReader.Load方法把元素在内存中编译(这样就可以得到UI元素对象的引用,也有可能是null,或者报错); 最后把它添加到容器的子控件中。 下面我们来制作一个简单的时钟,Page.xaml如下: <UserC
张善友
2018/01/19
9070
Silverlight 2 DispatcherTimer和通过XAML创建UI元素
silverlight:对象拖动的优雅解决方案
对象拖动是一个老生常谈的话题,在SL上要实现对象拖动,一般有三种思路: 一、基于Canvas绝对定位布局的拖动 这种处理方法最简单,修改对象的Canvas.Top与Canvas.Left即可,简单明了! 在线案例: silverlight图片局部放大效果 但是很多时候,我们采用的布局并不是Canvas,如果仅仅为了实现对象拖动,把整个布局重构,代价太大,有点得不偿失。 二、基于对象Margin值的拖动 Margin是对象的通用属性,通过改变Margin值理论上可在任何布局下,重新定位对象的位置。 在线案例:
菩提树下的杨过
2018/01/23
6560
WPF/Silverlight Layout 系统概述——Measure
前言 在WPF/Silverlight当中,如果已经存在的Element无法满足你特殊的需求,你可能想自定义Element,那么就有可能会面临重写MeasureOverride和ArrangeOverride两个方法,而这两个方法是WPF/SL的Layout系统提供给用户的自定义接口,因此,理解Layout系统的工作机制,对自定义Element是非常有必要的。那么,究竟WPF/SL的Layout系统是怎么工作的呢?接下来,我简单的描述一下,然后,在后面的章节具体分析。 简单来说,WPF的Layout系统是一
葡萄城控件
2018/01/10
8990
WPF/Silverlight Layout 系统概述——Measure
WPF-形状
MaybeHC
2024/04/23
1610
WPF-形状
silverlight:ScrollViewer的各种高度研究
直接给码: <UserControl x:Class="SilverlightApplication1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
菩提树下的杨过
2018/01/24
6650
silverlight:ScrollViewer的各种高度研究
【愚公系列】2023年04月 WPF运动控制平台-003.运动控制平台的UI设计
---- 一、运动控制平台的UI设计 1.代码 <Window x:Class="MotionPlatform.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expr
愚公搬代码
2023/04/16
5380
【愚公系列】2023年04月 WPF运动控制平台-003.运动控制平台的UI设计
Silverlight:Dependency Property(依赖属性)学习笔记
学习SL/WPF,Dependency Properties(依赖属性)是一个全新(陌生)但又无法回避的概念。 http://www.wpftutorial.net/DependencyPropert
菩提树下的杨过
2018/01/23
7440
Silverlight:Dependency Property(依赖属性)学习笔记
Silverlight Telerik控件学习:RadTransitionControl
如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool! 原理并不复杂,可参见以前写的 Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告. xaml部分: <UserControl xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="Telerik.Sample.Transition"
菩提树下的杨过
2018/01/23
8680
Silverlight Telerik控件学习:RadTransitionControl
推荐阅读
相关推荐
WPF自定义一个MessageBox
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档