- Korea times
- 끌리면 오라...BGM 광고음악 라이브러리
- KartOO visual meta search engi…
- E-Book
- Channel9
- MSDN
- 여리의 작업실
- 유경상의 .NET 블로그
- window 쪼물딱 거리기
- 블루 홈(소현이 누님)
- IT 관련 전반 내용(정환이네)
- 비너스의 정보 공유(유틸리티들)
- 형기의 자료공간(디지털ERA에서 콘텐츠ERA로)
- EzineArticles (여러 분야의 글들이 올라옴)
- Relationship을 보여주는 라이브러리
- OpenRCE
- 젠틀의 블로그(무선 통신의 모든것)
- 헐랭이와 IT보안
- 워니. 추억ㅇㅔ ㅂㅣ추ㅇㅓ.
- Computer Forensics
- 토익 광장(YBM)
- Korea Times 이용하기
- Larkware Software
- TCP/UDP
- Black Hat
- DEF CON
- Slashdot
- ReallyUsefulEbooks.com Update
- 실리콘밸리 뉴스
- Application Development Trends
- Visual Studio Hacks
- MIT OCW
- Redmond Developer News
- SecurityFocus
- Microsoft Window Hacking Porta…
- Darknet - Don't Learn to Hack …
- Windows Tips, Tricks and Hacks
- Hack In the Box
- (IN)SECURE Magazine
- SuperSite Windows Vista
- Government Security
- Life is Still Talking (Good)
- PHRACK
- Found+Read(resource for startu…
- Jonathan Boutelle
- Venture Hacks
- 스마트플레이스
- All about Intellipedia
- Undocumented Windows 2000 Secr…
- HexBlog (Decompiler)
- TED (Ideas worth spreading)
- Crash Dump Analysis and Debugg…
- Rootkit
- DDK Developers(MS)
- 미친 감자의 블로그
- The Art of Assembly Language
- Chpie (키보드 후킹)
- Drivers Online
- (음악) Delicate SONG
- Reverse Engineering Community
- Software Best Practices
- Sara Ford's WebLog
- Cheat Happens
- Debugging,Unpacking,Assembling…
- 윤석찬님 블로그
- OK 괜찮아 다 잘 될거야
- RingBlog
- Art Life :: 하늘소
- IT's Paradise
- John Robbins!
- Wintellect
- Hacked Gadgets
- 소프트웨어 이야기
- Ryan Naraine's Zero Day
- VULN
- Stay Secure
- EBS 영어 공부(블루워터)
- 101BLoG : "Bright Size Life" o…
- Hacker Challenge
- Hackers Center
- White Hat, Chicago Con
- Ethical Hacker Network
- ChaseNet (Security)
- TechTarget
- Entrepreneur
- Infopackets
- Popular Science
- Dark Reading - The Business of…
- How Stuff Works
- codeDriver - Crack (역공학)
- Gadget (Windows)
- Serious Code
- Iguacu Blog(블루문)
- SecurityProof
- Power of Community(Hacker)
- Crack ?
- Security Freak
- Data Network Resource
- FoundStone - Security Consulti…
- Google Online Security Blog
- (BOOK) Cool DogBooks
- SachaBarber (좋은 개발자)
- System Software Incorporation
- 스카이 벤처
- NewsTorrent
- 글로벌 IT 네트워크
- Ethical Hacking and Infosec
- Realms of Hacking tricks
- CodeBreakers Journal
- Anti Rootkit Blog
- The Reverse Code Engineering C…
- Anti-Debug Tools
- Reverse Code Engineering Video…
- Damn Vulnerable linux
- Security Problems
- French Reverse Engineering Tea…
- Monac
- Open Source Vulnerability Data…
- Viruschaser 검사(바이러스)
- Windows Tips
- 보안 대처 연습
- [Download] Kartz CD
- [Download] FlMS Download
- [Download] DDL2
- 중국 해킹 사이트(안전중국)
- 바이러스 분석
- Javascript 전문가
- Virus Alert Zone (바이러스 분석)
- Computer World
- 문스랩닷컴(보안)
- Unpack China
- Black Storm Reverse Engineerin…
- 역공학 Reverser
- 문화 망명지 - 시, 소설
- WPF MVP
- Research Channel
- The Problem Solver - C# MVP
- Reversing - 리버스 엔지니어링
- Nigel Spencer's Blog (.NET)
- Kirill Osenkov (.NET C# IDE Te…
- H33T (BitTorrnet 검색 사이트)
- ITL (해킹, 보안)
- ITL (Invisible Things Lab) Blo…
- ebook, pdf, chm
- 주식 - 멘토클리닉
- CherryLove - 바이러스, 백신, 악성코드
- PMP
- 영원한 해커, hacker
- 리버싱, PE
- 신호철 - dsphome
- TechEd 2009
- SHOUT
- [도서] 오디오북
- [도서] 전자책
- [도서] 국내도서요약
- [도서] 해외도서요약
- TopCorder - 프로그래밍 연습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- VSTS 2010
- 닷넷
- 해킹
- 디버그랩
- 역공학
- 책
- VSTS
- english
- 비주얼 스튜디오
- 구글
- Microsoft
- security
- 디버깅
- visual studio 2010
- hacking
- 비주얼스튜디오
- MVP
- Windows
- Visual Studio
- 보안
- C#
- Windows 7
- .net
- .net framework 4
- WPF
- debugging
- .NET Framework
- 마이크로소프트
- Today
- Total
NaggingMachine
WPF 타이머 생성하기 (Timer in WPF) 본문
I want to make a sample program to try the WPF by controlling contols' angle as times go by. I need to know the following technologies.
1. Timer
2. Controlling a control's angle
1. You can create a System.Windows.Threading.DispatcherTimer object. Whenever the tick event is occurred, the tick event handler will be called
2. To change the contol's angle I just examined the xmal file. Xmal file has all the information of the design. Angle value can be set at Angle attribute of RotateTransform element. But you cannot set the angle value by using the btnRotate.TransformGroup.RotateTransform.Angle = 50. You should make a TransformGroup and RotateTransform object.
Source codes are like followings.
WPF를 처음으로 다루어보면서 우선 간단하게 나마 컨트롤이 회전하는 응용 프로그램을 만들어보고 싶었다. 필요한 기술은 다음과 같다.
1. 타이머
2. 컨트롤의 각도 변경
1. Timer는 System.Windows.Threading.DispatcherTimer 객체를 이용해서 생성이 가능하다. 일반적인 타이머와 마찬가지로 EventHandler를 설치하여 사용할 수 있다.
2. 컨트롤의 각도에 영향을 미치는 값이 무엇인지를 확인하기 위하여 디자인에 사용한 xmal 파일을 살펴보았는데, 각도 값은 RotateTransform 엘리먼트의 Angle 애트리뷰트로 설정이 가능하다. 코드에서는 btnRotate.TransformGroup.RotateTransform.Angle = 50 과 같이 설정할 수 없고 대신 TransformGroup과 RotateTransform 객체를 만들어서 설정해야 한다.
전체 소스 코드는 다음과 같다.
Scene1.xmal
<Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006"
mc:Ignorable="d"
Background="#FFFFFFFF"
x:Name="DocumentRoot"
x:Class="UntitledProject1.Scene1"
Width="640" Height="480">
<Grid.Resources>
<Storyboard x:Key="OnLoaded"/>
</Grid.Resources>
<Grid.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard x:Name="OnLoaded_BeginStoryboard" Storyboard="{DynamicResource OnLoaded}"/>
</EventTrigger>
</Grid.Triggers>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="324,0,261,104" Width="Auto" Height="32" x:Name="btnRotate" RenderTransformOrigin="0.5,0.5" Content="Button">
<Button.RenderTransform>
<TransformGroup>
<TranslateTransform X="0" Y="0"/>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="-776.032282436724"/>
<TranslateTransform X="0" Y="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Button.RenderTransform>
</Button>
<TextBox VerticalAlignment="Top" Margin="268,133,225,0" Height="27" x:Name="txtRotate" Text="TextBox" TextWrapping="Wrap"/>
</Grid>
Scene1.xmal.cs
using System;
using System.IO;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;
namespace UntitledProject1
{
public partial class Scene1
{
private TransformGroup group;
private RotateTransform rotate;
private int angle = 0;
public Scene1()
{
this.InitializeComponent();
// Insert code required on object creation below this point.
group = new TransformGroup();
rotate = new RotateTransform();
group.Children.Add(rotate);
btnRotate.RenderTransform = group;
txtRotate.RenderTransform = group;
StartTimer();
}
private void StartTimer( )
{
System.Windows.Threading.DispatcherTimer TimerClock = new System.Windows.Threading.DispatcherTimer();
TimerClock.Interval = new TimeSpan ( 0, 0, 0, 0, 200 ); // 200 milliseconds
TimerClock.IsEnabled = true;
TimerClock.Tick += new EventHandler(TimerClock_Tick);
}
void TimerClock_Tick ( object sender, EventArgs e )
{
// Rotate controls
angle += 10;
rotate.Angle = angle;
}
}
}
Source Code:
'TechnoBabbler' 카테고리의 다른 글
기쁘다, WPF (0) | 2006.10.19 |
---|---|
TimeTracker with WPF (0) | 2006.10.16 |
앞으로 3개월 동안 WPF만 공부 (0) | 2006.10.02 |
WPF Killer Application, TimesReader! (0) | 2006.09.26 |
Install the lastest Vista, Build #5728 (0) | 2006.09.26 |