2010.01.25 09:00

1.RichTextArea Part 1
2.RichTextArea Part 2
3.Accessing Web Camera and Microphone
4.Right Click Mouse Events

5.MouseWheel API

6.Using Silverlight Controls As Drip Targets
7.DataGrid Enhancements
8.Printing API Basics 
9.Hosting HTML Content
10.Accessing the Global Clipboard Programmatically 
11.Using the ViewBox Control 
12.Asynchronous Data Validation 
13.BiDi and Right-to-Left Support 
14.Notification API
15.Local File Access 
16.RIA Services support in Visual Studio 2010 

블로그 이미지 김영욱 차장 Microsoft Korea  .NET Evangelist
Enterprise UX 를 위한  UI 기술과 SOA, Cloud Computing, NUI등 다양한 분야의 접목과 응용을 통해 최적의 IT 인프라 구축을 위해서 노력하고 있다.
Email: iwinkey@hotmail.com
Blog: http://winkey.tistory.com

 

일시적으로 어떤 데이터를 잠시 보관해 두는 영역을 클립보드라고 부릅니다. 사용자의 의지에 따라서 다른 곳의 내용을 복사해서 붙여 넣기 등의 작업을 할 때 임시로 보관해 두는 메모리 영역도 역시 클립보드 입니다.

 

사용자의 의지라고 제가 명시한 이유는 클립보드의 내용을 접근할 때 일반적으로는 사용자들이 Ctrl + C, V 등을 사용해서 클립보드의 작업을 하지만 그렇지 않은 경우도 있을 수 있기 때문입니다. 우리가 만들려고 하는 응용프로그램에서 클립보드의 내용에 직접 접근해야 할  필요가 있을 수도 있습니다.

 

Silverlight 3까지는 코드 상에서 클립보드에 접근할 수 있는 방법을 제공해 주지 않고 있었지만 Silverlight 4에서는 방법을 제공하고 있습니다.

 

<그림1>클립보드 샘플 프로그램

 

<그림1>에 나오는 샘플에서 첫 번째 RichTextArea 안에 포함되어 있는 내용을 Ctrl + C를 통해서 Copy 하고 두 번째 RichTextArea에 Ctrl + V를 통해서 붙여 넣기 했을 경우에는 아무런 메시지 없이 잘 실행됩니다.

하지만  하단에 있는 Copy 혹은 Paste를 사용할 경우 다음과 같은 경고 메시지가 나타나게 됩니다.

 

<그림2> 클립보드 접근시 나오는 메시지

 

이렇게 코드에서 클립보드에 접근할 경우에 메시지가 뜨는 이유는 클립보드 역시 로컬의 자원이기 때문에 보안 모델을 위반할 수 있기 때문에 사용자에게 적절하게 메세지를 주는 것 입니다.

 

클립보드에 실제로 접근하기 위해서 사용할 수 있는 객체는 System.Windows.Clipboard 입니다.

클립보드에  선택된 텍스트를 저장하기 위해서는

 

Clipboard.SetText( LeftTextBox.Selection.Text );

와 같이 사용할 수 있으며 반대로 클립보드에 있는 내용을 가져오기 위해서는

 

RightTextBox.Selection.Text = Clipboard.GetText();

와 같이 사용할 수 있습니다.

 

여기서 한 가지 더 알아두면 좋은 메소드는 현재 클립보드에 내용이 있는지 없는지 확인하는 Clipboard.ContainsText() 입니다. Clipboard.ContainsText()의 경우 내용 유무를 bool 형태로 돌려주게 되어 있습니다.

신고


티스토리 툴바