본문 바로가기

WPF37

첫 발행... 2006. 12. 22 너무 오랜 기간... 블로그를 방치해둔 것 같다. 2008년 가을의 어느 날 나의 열정을 식게 하는 일이 있었다. 아무튼... 이제 다 잊고 그 때의 열정을 다시 쏟아 붙고 싶다. (바람...^^) 2023. 1. 12.
모니터 해상도(Tip) WPF에서 모니터의 실제 해상도를 가져오는 간단한 프로그램입니다. xaml code cs code using System.Windows; namespace WPFScreen { public partial class Window1 : Window { public Window1() { InitializeComponent(); this.Loaded += new RoutedEventHandler(Window1_Loaded); } void Window1_Loaded(object sender, RoutedEventArgs e) { txWidth.Text = SystemParameters.PrimaryScreenWidth.ToString(); txHeigh.Text = SystemParameters.PrimarySc.. 2008. 9. 15.
Aero Glass(에어로 글래스) 사용하기 WPF에서 에어로 글래스를 사용하기 위해서는 DwmExtendFrameIntoclientAero API를 호출해야 합니다. 참고 : DWM : DeskTop Window Manager 윈도우의 투명색은 다른 여러가지 색으로도 변경이 가능하며 무채색으로도 효과를 줄 수 있습니다. DeskTop Window Manager 사용하기 위해서는 PInvoke(Platform Invoke)를 사용해야 합니다. WPF에 관리되지 않는 코드이기 때문에 Win32의 API를 호출해야 합니다. using System.Runtime.InteropServices; 네임스페이스에 Win32 API를 호출하기 위한 네임스페이스를 선언합니다. [DllImport("dwmapi.dll", PreserveSig = false)] st.. 2008. 8. 24.
Flash Movie 실행하기 WPF에서 Flash Movie를 재생하는 데모를 만들어보겠습니다. ActiveX 컨트롤 사용하는 방법과 동일하며 AxInterop.ShockwaveFlashObjects.dll 이 필요합니다. dll이 로컬에 존재한다면 참조에 추가하면 되고 없으면 여기에서 다운로드 받으시면 됩니다. AxInterop.ShockwaveFlashObjects.dll이 추가되었습니다. 로컬에 있는 Flash Movie를 가져와 WPF에서 재생을 합니다. xaml code cs code using System.Windows; using System.Windows.Forms.Integration; using AxShockwaveFlashObjects; namespace WPFControlSwf { public partial c.. 2008. 8. 7.
ActiveX 컨트롤 사용하기 WPF From 내부안에 긍즉적으로 다른 윈도우가 종속족으로 퐇마될 수 없습니다. 그러나 이를 가능하게 해주는 클래스가 지난 강좌(WPF에서 윈폼 컨트롤 클래스 사용히기)에서 다루었던 ElementClass입니다. Element 클래스를 이용하여 ActiveX를 컨트롤할 수 있는데요 ActiveX 컨트롤 추가하는 방법 1. ActiveX Importer(AXIMP.EXE)를 실행 (이 유틸리티는 윈도우즈 SDK의 닷넷컴퍼넌트에 포함되어 있습니다.) 2. Visual Studio에서 윈폼 프로젝트를 만든다음 [도구상자]-[항목선택]을 한다음 [도구상자선택항목]의 [COM 구성요소]템에 있는 ActiveX를 선택하여 도구상자에 추가한다음 이 컨트롤을 윈폼에 마우스로 드레그하여 추가하는 방법(추가하면 윈폼에서.. 2008. 7. 21.
윈폼(Winform) 컨트롤 사용하기 WPF에서 윈폼 컨트롤을 사용하기 위해서는 ElementHost라는 클래스를 통해서 윈폼 컨트롤을 WPF에 포함할 수 있습니다. ElementHost 클래스는 HwndSource와 같지만 임의의 HWND보다는 WPF 내부에 윈폼의 컨트롤을 포함시킬 수 있도록 특화도니 클래스입니다. ElementHost 호스트는 using System.Windows.Controls을 상속받아 윈폼 컨트롤을 WPF 컨텐트(Content) 내부에 어떻게 보여줄지를 결정합니다. [도구상자]-[항목선택]순으로 메뉴를 열면 [도구상자선택항목] 대화상자에서 ElementHost가 선택되어 있거나 선택하면 [도구상자]에 WindowsFormsHost 컨트롤이 추가된 것을 볼 수 있습니다. using System.Windows; usi.. 2008. 7. 14.
News Reader SDK 공개 Introducing the Syndicated Client Experiences Starter Kit & Reader SDK 라는 제목으로 미국마이크로소프트 공식 사이트에 소개되어 있습니다. URL: http://windowsclient.net/wpf/starter-kits/sce.aspx NY Times Reader와 Seattle PI Reader 의 원 소스였던, News Reader SDK가 공개되었습니다. 2008. 1. 17.
클래스를 상속받아 윈도우 응용 프로그램 구현하기 보통 Application 클래스를 상속받아 윈도우 응용프로그램을 만들 수도 있지만 Window 클래스를 상속받아 윈도우 응용프로그램을 만드는 것도 가능합니다. Window 클래스를 상속받아 하나의 파일에서 정의하는 것이 조금 더 일반적이며 더 쉬운 방법이라고 할 수 있습니다. using System; using System.Windows; using System.Windows.Input; namespace Chapter1 { class InheritTheWin : Window { [STAThread] public static void Main() { Application app = new Application(); app.Run(new InheritTheWin()); } public InheritThe.. 2008. 1. 8.
Color와 Colors 구조체를 객체 생성 및 색 지정 WPF에서 색상을 다루기 위해서는 System.Windows.Media 네임스페이스에 정의된 Color 구조체를 사용합니다. Color 구조체는 빛의 3원색인 빨간색, 녹색, 파란색 3가지를 사용합니다. 이 3원색은 영문의 앞자를 따서 R(Red), G(Green), B(Blue)로 나타냅니다. 또 색상의 투명도를 나타내는 알파 채널을 추가하여 ARGB라고 표현합니다. 약자는 A(Alpha)로 나타내며 값이 0이면 완전한 투명하다는 의미이며 255이면 불투명임을 나타냅니다. 3원색을 나타내기 위해서 다음과 같이 코드를 작성합니다. Color 구조체는 인자가 있는 객체와 없는 객체가 모두 존재합니다. 인자 값이 없는 Color 객체 생성 Color color = new Color(); color.R = 2.. 2008. 1. 8.
화면에서 윈도우 크기와 위치 지정 윈도우 운영체제에서 창은 화면상에 표시되는 위치와 크기를 갖는데 이를 재지정 할 수 있습니다. 크기(Size) : Width(가로), Height(세로) Window 클래스는 FrameworkElement로부터 Width와 Height 프로퍼티를 상속 받습니다. 따라서 다음처럼 다음과 같이 생성자에서 이 프로퍼티의 값을 재정의 할 수 있습니다. Width와 Height는 초기에는 정의돼 있지 않으며 프로그램에서 따로 정의하지 않는 한 계속 이런 상태로 남습니다. 따라서 이를 달리 표현하면 NaN(숫자가 아님:not a number)값을 갖게 합니다. 창의 실제 크기를 얻기 위해서는 Width와 Height 프로퍼티를 사용해서는 안 되며 ActualWdith, ActualHeight 프로퍼티를 사용해야 합.. 2008. 1. 5.
Application의 window 제어하기 윈도우용 데스크톱 프로그램은 한 번에 여러 개의 창을 띄울 수 있다는 것을 여러분은 익히 알고 있을 것입니다. 그 중 특정 윈도우를 닫으면 현재 열려있는 윈도우가 닫히고 최종적으로 프로그램이 완전히 종료하게 됩니다. 여러 개의 윈도우중 그 어느 윈도우를 닫더라도 현재 실행중인 프로그램이 종료된다면 프로그램의 성능상에 심각한 문제가 발생 할 수 있습니다. 또 프로그램에는 반드시 메인 윈도우가 존재해야 하며 서브 윈도우를 제어할 수 있어야 합니다. using System; using System.Windows; using System.Windows.Input; namespace Chapter1 { class ThrowWindowParty : Application { [STAThread] public stat.. 2007. 12. 21.
이벤트 안에서 현재의 윈도우 객체 구하기 WPF 이벤트 안에서 현재의 윈도우 객체 구하기 ※ 코드예제는 찰스 페졸트의 WPF에서 참고하였습니다. using system; using system.windows; using system.windows.input; namespace chapter1 { class handleanevent { [stathread] static void main() { application app = new application(); window win = new window(); win.title = "handle an event"; win.mousedown += new mousebuttoneventhandler(win_mousedown); app.run(win); } static void win_mousedown(ob.. 2007. 12. 14.