Microsoft MVP성태의 닷넷 이야기
winform => wpf 마이그레이션 방법 질문 [링크 복사], [링크+제목 복사],
조회: 930
글쓴 사람
GM B (welcometome80 at gmail.com)
홈페이지
첨부 파일

안녕하세요?

과거 주인장님이 올리신 학습내용

https://www.sysnet.pe.kr/2/0/11428

을 보고 문의드립니다.

1. 현재 winform projct를 wpf로 convert하고 싶습니다. (winform + wpf '혼용'은 별로 좋지 못한 상태라서..)

2. 위의 학습내용 가이드라인대로 따라하다 막힙니다.

3. 질문내용

(위의 App.xaml.cs 코드에는 기존 WinForm 프로젝트의 Program.cs 파일에 여러분이 작성한 코드가 있다면 WPF 환경에 맞게 마이그레이션합니다. 완료되면 Program.cs 파일을 삭제합니다.)

program.cs부분에 있는 어느 범주의 class까지 app.xaml.cs로 migration을 해야 하는건지? 그냥 Ctrl+C => Ctrl+V는 아니리라 생각됩니다만 이 부분이 설명이 생략되어 있어서
질문드립니다.

그리고 그 뒤의 (나머지 Form 들도 모두 "Window (WPF)" 유형으로 마이그레이션한 다음 완료)부분도 제가 경험이 좀 없다보니..

제가 MIGRATION작업을 하다 중단된 PROJT를 첨부파일로 보내드립니다.

.cs파일은 총 5개 (Graph.cs, ImageOperations.cs, MeanHip.cs, Program.cs, TestOutput.cs)입니다만 저 혼자 힘으로 convert가 힘드네요. ㅠ.ㅠ

물론 선생님께서는 "이런거 까지 내가 해줘야 해?"라고 하시겠지만 양심껏..저는 이 변환이 제가 작업하고 있는 prj의 전부가 아닙니다.

변환이 되면 제가 작업중인 wpf prj에서 또 본 첨부파일의 변환된 wpf prj code를 또 가져다 붙이고 수정작업을 해야 합니다. 그건 뭐 제가 스스로 할 수 있습니다.

그리고

https://yoursrp.wordpress.com/2012/04/06/www-win2wpf-com-convert-c-net-winform-to-wpf-xaml/

이것을 발견했습니다만 실제 convert tool이 있는건가요?? 아마 구조상으로 매끈하고 완벽하게 convert되는 tool SW는 없지 싶습니다만...

아무쪼록 위의 내용은 조금 제가 이해하기가 낯선...(아무래도 winform계열보다는 wpf경력위주다보니..)

도우심 부탁드립니다.

p.s : 메뉴 왼쪽의 카뱅 계좌는 유효한 계좌 맞나요? 그냥 확인차 질문드립니다.








[최초 등록일: ]
[최종 수정일: 4/10/2025]


비밀번호

댓글 작성자
 



2025-04-10 10시18분
아... 제가 그 글을 괜히 쓴 것 같습니다. 몇몇 분들이 기대를 하시는 듯한데, WinForm 프로젝트의 코드를 WPF로 마이그레이션하는 방법은 없습니다. 제가 그 글을 쓴 이유는, 일례로 "Class Library" 프로젝트로 생성했다가 "Console App" 프로젝트로 변경하는 등의 단순한 수준의 변경을 할 수 있다는 것에서 작성한 것입니다.

즉, 비주얼 스튜디오가 WinForm 프로젝트를 WPF 프로젝트로 인식하도록 만드는 수준의 변형일 뿐, 내부적인 모든 코드는 WPF에 맞게 재작성해야 합니다. (convert tool이란 것은 없습니다.)
정성태
2025-04-10 10시28분
cs 파일의 경우,

* Graph.cs: 이건 그대로 쓰실 수 있고,
* ImageOperations.cs: 이것도 DisplayImage 메서드의 PictureBox 인자를 WPF의 경우 <Image />로 변경하시면 됩니다.
       https://learn.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.bitmapimage?view=windowsdesktop-9.0

* MeanHip.cs: 이것도 그대로 쓰실 수 있고,
* Program.cs: 이건 그냥 새롭게 WPF 프로젝트를 만들면 App.xaml로 대체되므로 버리면 됩니다.
* TestOutput.cs: 이것도 그냥 쓰시면 됩니다.
정성태
2025-04-23 11시13분
늦었지만 답변감사드립니다. 제가 좀 바빠서 이제서야...

도움말씀감사드리며 "New wpf 프로젝트를 만들면~"이라는 말씀은 제가 예정하고 있는 new wpf를 말씀하시는 것 맞는지요?
뭔가 converting을 위한 new wpf가 필수로 해야 된다는 이야기가 아니죠? ^^
우선 처음이라..시도는 해보겠습니다만...제가 작업하고 있는 current wpf에 importing이전에 단순한 wpf convert용으로 쓰고자...
즉, mainwindow.xamls이 없어서요. 그걸 winform상에서 new 생성하고 또 ImageOperations.cs를 지시하신대로 변경하면 되는건지?
mainwindow.xamls에서 뭔가 해야될 제가 모르는 것이 있을 것 같아 질문드렸습니다. ^^
GM B
2025-04-23 02시43분
오히려 그 글을 읽지 않았다고 생각하시는 것이 편합니다. (기억에서 지우세요 ^^;)

우선 하셔야 할 일은, 1) WPF 프로젝트를 만들고 2) 위에서 제가 답변한 내용에 따라 Graph.cs 등의 파일들을 포함 및 PictureBox 등의 사용을 WPF의 컨트롤로 변경하는 작업만 하시면 됩니다. 대충 보니까, 생각보다 그다지 WinForm 의존적인 코드를 넣진 않으셔서 WPF로 어렵지 않게 마이그레이션할 수 있을 것입니다.
정성태

... 16  17  18  19  20  21  22  23  24  25  [26]  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5292아부리2/19/202014239XingApiNet 관련 질문 [3]
5291지현명2/15/202015556JsonConvert.Serialize 하고 Deserialize 할때 간헐적으로 한글 깨짐 현상 문의 합니다. [3]
5290베도빈2/15/202014584직접 제작한 사용자 정의 콘트롤 DLL, 실행파일에 포함시켜 배포할 수 있을까요? [1]
5288김성배2/14/202014793c# 참조추가 기능에서 DirectX 참조가 보이지 않아요.. DircetX 11 은 설치 되어 있습니다. [1]
5287C# 초...2/14/202013747프로그램 실행 질문 드립니다. [4]파일 다운로드1
5286gongs2/3/202022990윈도우 배율 및 레이아웃에 대한 질문입니다. [3]
5285강성욱1/27/202015470작업관리자에 표시되는 스레드 개수와 프로그램 내 스레드 개수 일치 [1]
5284이상준1/15/202022230출력창에 '스레드가 종료되었습니다' 문구 문의 [2]파일 다운로드1
5282봉봉이 1/13/202017641소켓 비동기 ReceiveTimeOut 구현 [9]파일 다운로드1
5281봉봉이 1/13/202015525소켓 비동기 ReceiveTimeOut 구현 [2]
5280sdd1/8/202014046데이터 저장, 배치파일 관련하여 질문드립니다. [4]
5279김창한12/27/201914634dsoframer ocx [3]
5278guest12/27/201913676CLR 스레드 풀 관련 질문 [1]
5277방문자12/26/201913462WindowsForm 질문드립니다. [3]
5276진우12/17/201916255c++/c# 에도 파이썬 가상환경 같은 기능 혹시 있는지 궁금합니다. [3]
5275송재필12/17/201915216아래 'c#8.0 프로그래밍 교제 예제 관련 문의 드립니다' 의 원인이 압축 파일의 문제인듯 합니다. [2]파일 다운로드1
5272정영훈12/13/201915795byte => string => byte 변환 문의드립니다. [5]파일 다운로드1
5270김세미12/3/201914261c#8.0 프로그래밍 교제 예제 관련 문의 드립니다. [4]
5269달려라라...12/2/201915428C# winform(framework) tabcontrol 에서 button 함수 관련 질문 [3]파일 다운로드1
5266엔벌잉11/26/201913848라즈베리파이 autostart관련 질문 [2]
5265해나11/25/201913606C# 6.0 책 내용 문의 [1]
5264김혜원11/18/201916806C# CodeSign에 대해 여쭤볼 것이 있습니다 [4]
5263정환맨11/17/201915301Task관련 질문입니다 [3]
5262닷린이11/14/201917094Dispatcher 와 synchronizationcontext의 관계가 궁금합니다. [6]
5260방문자11/13/201915062안녕하세요 도움받고 싶습니다 [1]
5259ming11/13/201914278string타입 파라메터로 넘길때 메모리 내부가 궁금합니다. [3]
... 16  17  18  19  20  21  22  23  24  25  [26]  27  28  29  30  ...