2011-02-15 2 views
1

XAML WPF 창을 .Net 2.0 Windows 폼 형식으로 변환하는 유틸리티 또는 변환기가 있습니까?XAML WPF 창을 WinForm으로 변환

+1

은 .. 어떤 존재하며,이 경우에도 그들이 ... –

+0

당신 말이 맞아요을 컨트롤의 WinForm하는 WPF의 컨트롤 계층 구조를 평평하게 수 있는지 .. 궁금합니다,하지만 난 기본 레이아웃 또는 'figure'가 필요합니다. –

+0

[ElementHost] (http://msdn.microsoft.com/en-us/library/system.windows.forms)를 사용하여 WPF 컨트롤을 WinForms의 윈도우에 간단히 포함시킬 수 있습니까? .integration.elementhost.aspx)? – digEmAll

답변

3

아니, 및; WPF와 WinForms는 서로 다른 프레임 워크입니다. UI 구성, 레이아웃 차이, 다른 위치 지정 시스템 등의 차이로 인해 WPF UI를 실제로 WinForms UI로 변환 할 수 없습니다.

+0

주된 이유는 WPF에서 다른 컴포지션 방법입니다.하지만 거친 WinForm에 WPF 윈도우에있는 가장 가까운 방법으로 컨트롤이 들어있는 유틸리티가 필요합니다. –

+0

내 것이 아무것도없는 것 같습니다. 지식, 나는 이런 종류의 일에 연루되는 경향이 있습니다. –

2

변환 도구가 없습니다. ElementHost을 사용하여 WPF에서 WPF 구성 요소를로드하면 WPF 구성 요소를 변환하거나 다시 사용할 필요가 없습니다. WPF 윈도우가 있으면 이것을 UserControl로 변환해야합니다.

편집 : 이런 건 할 가능성이있다

.Net 2 code to load WPF control

string dllPath = "C:\\ProjectsTest\\TestSolution\\ActiveXUser\\bin\\Debug\\TestControl.dll"; 
if (!File.Exists(dllPath)) { 
    return; 
} 

string versionInformation = null; 
versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor; 

Assembly loadedAssembly = Assembly.LoadFile(dllPath); 

Type[] mytypes = loadedAssembly.GetTypes(); 

Type t = mytypes[1]; 
Object obj = Activator.CreateInstance(t); 

versionInformation = Environment.Version.Major.ToString() + Environment.Version.Minor; 
this.Panel1.Controls.Add(obj); 
+0

하지만 문제는 내가 사용하고 있습니다. NET 2.0 !! : –

+1

아. 거기에 대한 해결책은 [여기] (http://stackoverflow.com/questions/1298933/loading-net-3-5-wpf-forms-in-a-net-2-0-application/1378896#1378896) –

+0

이것은 'ControlCollection.Add' 메쏘드는 임의의 객체가 아닌'Control'을 취하기 때문에 컴파일되지 않습니다. –