2011-04-26 5 views
0

ElementHost를 사용하여 WinForms 응용 프로그램에서 WPF 사용자 정의 컨트롤을 호스팅하고 있습니다. 컨트롤에는 포커스가있을 때 보이는 두꺼운 경계가 있습니다. 경계는 컨트롤의 바깥쪽에, 즉 음수 여백을 가지고 있습니다.ElementHost 외부 포커스 테두리가 표시되지 않습니다.

문제는 초점 영역이 결코 나타나지 않는다는 것입니다. ElementHost에 내 컨트롤이 포함 된 패딩 테두리를 추가하면 표시됩니다. 그러나, 나는 ElementHost 내부에 컨트롤을 갖고 싶기 때문에 스텁을 사용하기 전에 만들어진 레이아웃을 깨뜨리지 않습니다. 어떤 생각?

감사합니다.

답변

2

ElementHost에는 내부의 모든 WPF 요소를 호스팅하는 자체 창 핸들이 있습니다. 그것은 별도의 WinForms 컨트롤입니다.

일반적으로 창 핸들은 경계 사각형 (이 경우 부모 WinForms 컨트롤을 기준으로 한 ElementHost의 경계 사각형)이 될 수 없습니다.

그래서 WPF 요소에 음수 여백을 사용하여 ElementHost 외부로 그릴 수 없습니다. 대신 WinForms에 테두리를 그리고 ElementHost가 더 커지도록 레이아웃을 수정해야합니다.

+0

@narduk, Joe가 맞습니다. WinForms 컨트롤은 경계 사각형 외부에 그릴 수 없습니다 (WPF에서만 가능). ElementHost는 WinForms 컨트롤입니다. – publicgk

관련 문제