2008/11/11에 해당되는 글 3건
2008.11.11 :: WPF UIElement Clone
2008.11.11 :: VPL 기본 3. 입력 값 받아보기.
2008.11.11 :: VPL 기본 2. 변수 값 처리 하기.
2008. 11. 11. 23:58 :: Advanced WPF
안녕하세요. 이번시간에는 기존의 WinForm에서 사용하던 Clone메서드를 WPF에서는 어떻게 사용하는지에 대해 알아보도록 하겠습니다. WPF에서는 특별하게 Clone 메서드를 제공하고 있지 않기때문에 Clone 메서드를 직접 구현 해야 합니다. 프로젝트를 하다가 생각나서 구현해놨던건데 알려드리면 유용할것 같아 포스팅합니다..
저같은 경우는 방법이야 여러가지가 있겠지만, 저같은 경우는 간단하게 UIElement객체를 XAML로 Export하고 다시 해당 객체를 Import하는 방식으로 사용합니다. 생각보다 부하가 심할 수 도 있는 부분이긴하나, 간단하게 한두번 정도 사용하기에는 큰 무리는 없을 것으로 보입니다.
아래는 제가 사용하는 CloneElement 메서드 소스코드입니다.
- public static UIElement CloneElement(UIElement Source)
- {
- if (Source == null) return null;
- string XAML = System.Windows.Markup.XamlWriter.Save(Source);
- System.IO.StringReader StringReader = new System.IO.StringReader(XAML);
- System.Xml.XmlReader xmlReader = System.Xml.XmlTextReader.Create(StringReader);
- return (UIElement)System.Windows.Markup.XamlReader.Load(xmlReader);
- }
public static UIElement CloneElement(UIElement Source) { if (Source == null) return null; string XAML = System.Windows.Markup.XamlWriter.Save(Source); System.IO.StringReader StringReader = new System.IO.StringReader(XAML); System.Xml.XmlReader xmlReader = System.Xml.XmlTextReader.Create(StringReader); return (UIElement)System.Windows.Markup.XamlReader.Load(xmlReader); }
- Button OriginalButton = new Button();
- Button CloneButton = CloneElement(OriginalButton) as Button;
Button OriginalButton = new Button(); Button CloneButton = CloneElement(OriginalButton) as Button;
2008. 11. 11. 21:30 :: MSRDS
.............
연달아 글 쓰는건 좀...
귀찮은듯??-ㅁ-a
이번 시간(?)은 사용자 에게서 입력을 받아서, 그 변수를 가지고 활용해 보도록 하겠습니다.
입력을 받는 방법은 이때 까지 출력으로 써왔던 SimpleDialog를 이용하시면 됩니다. 훗. -_-a
먼저 SimpleDialog와 Calculate Activity를 추가하여 줍니다.
그리고 그 둘을 연결 하여 줍니다. 그러면 다음과 같은 Connections 창이 뜹니다.
그러면 위와 같이 PromptDialog - Success를 선택하고 OK를 하여줍니다.
현재 까지 상태 입니다.
여기 까지 하셨으면 SimpleDialog를 하나 더 추가 하여 줍니다. 그러면 Add Activity라는 창이 하나 더 뜹니다.
현재 Diagram에 SimpleDialog가 있기 때문에 뜨는데, 원래 있는 SimpleDialog와 별반 다르지 않기 때문에 아래의 SimpleDialog를 선택하시고 OK를 눌러줍니다.
그리고 Calculate Activity 와 방금 추가한 SimpleDialog Activity를 연결합니다. 그러면 또 Connections 창이 뜨는데 AlertDialog를 선택하고,
Value는 value를 선택하고 OK합니다.
다 하셨으면 다음과 같은 모습일 것입니다.
그러면 실행을 하여 주시면~~!
입력을 받을 Prompr Dialog창이 뜹니다.
그러면 입력 창에 원하는 문자열 아무거나 적으시고 OK를 클릭하시면~
위와 같이 적은 문자열이 그대로 출력이 됩니다.
지난 글과 연계하여 Calculate Activity 를 수정하여서, 또 다른 상태로 출력을 하여 보세요~
참 쉽죠~?
.............ㅜㅜㅜㅜㅜㅜ
2008. 11. 11. 21:00 :: MSRDS
..........
저번주 한번 날렸네요... -_-;;
시사회 간다고 바쁘게 그날 하루 날려 주시고~
이번주에 두개 올라 갑니다~~!
VPL 기본 1 에서는 Hello World! 를 출력 하는 것을 해보았습니다.
그냥 단순히 변수 값 만 날리는거 말고, 변수 값을 받아서 처리 하여 출력하여 보도록 하겠습니다.
저번의 Hello World! 하는 것에서 약간 변형을 해서 Variable과 Calculate 라는 Activity를 하나 씩 추가 해 줍니다.
그러면 위와 같은 상태가 됩니다.
Data 에 string형 변수로 "홍길동"을 넣어주면 "당신은 홍길동 입니다" 로 메세지를 출력 해 보도록 하겠습니다.
그러면 Data에 string형으로 변환하여 홍길동을 적어주시고, Variable 에는 your name으로 지정해줍니다.
위와 같이 하시면 되는데 Data와 Variable을 연결 하시면 다음과 같은 창이 뜨는데 거기서 SetValue를 선택하시고 OK누르시면 됩니다.
그리고 Variable Activity에서 오른쪽 아래의 ... 라는 추가 버튼을 누르시면 다음과 같은 창이 뜹니다.
여기에서는 Add 버튼을 누르신 후 yourname이라는 변수로 설정해 줍니다. 물론 데이터 형은 string으로 하여야 겠죠.
그리고 Calculate에서는 yourname이라는 변수를 선택하여 주면 됩니다.
현재 까지 하셨으면 위와 같은 상태일꺼고 simpleDialog랑 Calculate를 연결 하시면 됩니다. 여기서는 지난 글의 방법과 같이 AlertDialog를 선택 하시면 되구요.
그 다음에 Data Connections 창이 뜨는데 거기선 value에서 value를 선택하시고 ok하시면 됩니다.
이 상태에서 실행을 하시면 변수를 처리 하지 않은 변수 상태 그대로 홍길동 이 출력이 됩니다.
변수 처리를 할려면~!! Calculate Activity에서 수정을 해 주어야 합니다.
string은 " " 로 닫아주시고, 그담에 + 하시면 두 변수 사이가 더해지는(??)구조?-ㅁ-a;;;; 다음의 그림과 같이 Calculate Activity를 수정하여 주시고 실행하시면.
다음과 같이 원하는 모습대로 출력이 됩니다.
뭐 이거 날로 먹는 느낌도 강하긴 한데.. 기초라 뭐 설명을 어찌.. 흡...-_-a