2011-04-28 2 views
0

최근 필자는 웹 브라우저 컨트롤처럼 작동하는 기존 컨트롤을 필요로하는 특정 기능으로 검색했습니다.C# Winforms 사용자 지정 웹 브라우저 컨트롤이 필요합니다.

나는 그걸 가지고있는 사람을 찾지 못했고, 그래서 나는 여기서 질문을 남기고 싶어했다. 누군가가 내가 이것을 어떻게 할 수 있는지를 지적하기를 원하거나 심지어 처음부터 하나를 만드는 방법에 대한 조언을 해주고 싶다. 궁극적으로 해결책이 될 것입니다.

웹 페이지를 미리 볼 수있는 컨트롤이 필요하며 동시에 프로그래밍 방식으로 편집 할 수 있습니다. HTML이나 텍스트를 에디터에 직접 쓸 필요는 없지만 버튼을 클릭하고 문서에 특정 HTML 코드를 삽입하고 미리보기를 새로 고침 할 수 있어야합니다.

또한 컨트롤의 클릭 이벤트를 캡처 할 수 있어야합니다. 예를 들어, 컨트롤의 특정 위치를 클릭하고 마우스 위치에있는 HTML 요소를 가져 오려고합니다. 이벤트와 관련해서는 드래그 앤 드롭을 캡처 할 수 있어야하며, 기본적으로 브라우저 컨트롤은이를 지원하지 않습니다.

몇 가지 다른 컨트롤을 사용해 보았지만 그 중 아무 것도 이러한 기능이 없거나 나를 추가 할 수있었습니다. 그래서 누군가가 올바른 방향으로 나를 가리킬 수 있다면 정말 고맙게 생각합니다. 아니면 기존 .NET 컨트롤 중 하나를 사용하여 수행 할 수 없다고 잘못 가정한다면 저를 고칠 수 있습니다.

도움을 주셔서 감사합니다.

답변

0

내가 아는 한, 그러한 통제는 없습니다. 또한 처음부터 새로 작성하여 모든 최신 HTML/CSS를 올바르게 렌더링하는 것이 주요 사업이 될 것입니다.

Microsoft Expression과 같은 제품조차도 편집중인 HTML을 표시하는 방식에있어 단점이 있습니다.

귀하의 업무가 방해 될 까봐 두렵습니다.

+0

네, 사실 내가 정말 CSS와 HTML을 렌더링하는 컨트롤을 쉽게 만들 수 없습니다 ... 것으로 생각했다.하지만 거기에는 몇 가지 컨트롤이 있습니다. 브라우저 컨트롤 이외에도 몇 가지 작업을하는 것으로 보이며, 처음부터 완료되지 않았을 것입니다. – BlunT

+0

@BlunT : 오픈 소스 렌더링 엔진이 있습니다. 그래서 당신은 그런 것을 취할 수 있고 그것을 편집 할 수 있도록 수정할 수 있습니다. 그러나 컴포넌트를 사용하는 것보다 오리지널 소스 코드로 작업해야하기 때문에 이것을 다소간 고려해야합니다. –

1

두 가지 제안 : 브라우저의 클라이언트 측에

는 마우스 위치에 의해 HTML을 얻을 수있게된다 DOM의 접근이 있습니다.

http://www.permadi.com/tutorial/cssGetElementUnderMouse/index.html

이 아마도 당신이 차례로 브라우저와 상호 작용할 수있는 부모의 UI 코드에서 이벤트를 발생하는 데에 후크를 할 것이다 당신의 HTML에 자바 스크립트를 작성할 수이의 데모이 페이지를 확인하세요 . DOM에서 HTML 엘리먼트 이름을 캡쳐 한 것을 UI로 되돌려 보내 HTML을 HTMLDocument로 커서로 사용하는 것이 좋다.

거기에서 드래그/드롭이나 온 더 플라이 새로 고침과 같은 아이디어를 지원하도록 모델을 확장 할 수 있습니다.

나는이 상자 밖에서 아무것도 모릅니다. 나는 주위를 둘러 보았고 무료로 청구서를 발행하는이 도구를 보았습니다. 그러나 그 라이센스 모델이 무엇인지 모르겠습니다. 에 문의하십시오.

http://kompozer.net/features.php

+0

이 게시물에 답변하지는 않았지만 kompozer는 C#과 함께 사용하는 구성 요소가 아닌 독립형 도구 자체 인 것 같습니다. ModelText가 나를 미쳐 가고 있기 때문에 검색으로 돌아 왔습니다. 일부 HTML을 추가하려고 할 때 "예기치 않은"오류가 발생합니다.이 오류는 수정 방법에 대해 많은 정보를 제공하지 않습니다. – BlunT

0
+0

ModelText는 제가 시도한 컨트롤 중 하나이며 제공된 예제를 사용하여 테스트되었습니다. 나는 이미 이벤트를 포착하려고 시도했지만 나는 할 수 없었지만, 이제는 또 다른 시도를하고 적어도 작동시킬 부분을 얻는 것처럼 보입니다. 나는 조금 더 깊이 파고 그것이 내가 필요한 모든 것을 할 수 있는지를 알려줄 것이다. 이 컨트롤에 대한 경험이 있습니까? 아니면 의심이 든다면 어디로 갈 수 있습니까? – BlunT

+0

전에는 사용하지 못했습니다. 매우 유용 할 것 같아서 일하기를 바랬습니다. – Nick

+0

프로그래밍 방식으로 HTML의 내용을 설정하는 데 문제가 있습니다. 그러나 페이지를 클릭하면 HTML 컨트롤의 이벤트를 캡처 할 수있었습니다. 시작입니다! – BlunT

관련 문제