2012-05-16 1 views
1

데스크톱 응용 프로그램 내의 WPF WebBrowser 컨트롤에 표시되는 웹 페이지가 있습니다. ...WPF System.Windows.Controls.WebBrowser 렌더링 링크 단추가 없음

a.btnSave 
    { 
     background: url(Resources/Images/btnSave.png) no-repeat 0 0; 
     display:inline-block; 
     width: 75px; 
     height: 23px; 
     text-indent: -9999px; 
    } 
    a.btnSave:hover {background-position: 0 -23px;} 

    a.btnCancel 
    { 
     background: url(Resources/Images/btnCancel.png) no-repeat 0 0; 
     display:inline-block; 
     width: 75px; 
     height: 23px; 
     text-indent: -9999px; 
    } 
    a.btnCancel:hover {background-position: 0 -23px;} 

    a.btnReset 
    { 
     background: url(Resources/Images/btnReset.png) no-repeat 0 0; 
     display:inline-block; 
     width: 75px; 
     height: 23px; 
     text-indent: -9999px; 
    } 
    a.btnReset:hover {background-position: 0 -23px;} 

을 : 난 그냥 asp.net의의 LinkButton에 asp.net 버튼 형식에서 변화와 그것에 CSS 스타일을 적용하여 스타일 단추 대신 기본 회색 버튼을 사용하여 웹 페이지를 업데이트

<asp:LinkButton ID="btnSave" runat="server" CssClass="btnSave" OnClick="btnSave_Click" OnClientClick="OnSubmit()" UseSubmitBehavior="False" Text=" " /> 
<asp:LinkButton ID="btnCancel" runat="server" CssClass="btnCancel" OnClick="btnCancel_Click" OnClientClick="OnSubmit()" CausesValidation="False" Text=" " /> 
<asp:LinkButton ID="btnReset" runat="server" CssClass="btnReset" OnClick="btnReset_Click" OnClientClick="OnSubmit()" CausesValidation="False" Text=" " /> 

IE 8 (또는 Firefox)에서 페이지를 볼 때 버튼이 올바르게 나타납니다. 그러나 응용 프로그램 내에서 WebBrowser 컨트롤에 페이지를로드 할 때 단추가 누락되었습니다. 내가 있어야 할 곳 위로 마우스를 가져 가면 손 모양 아이콘이 나타나지 않으므로 이미지가로드되지 않습니다. 소스를 볼 때 앵커 태그가 있고 소스를 복사하여 HTML 파일에 저장하고 브라우저 창에서 열면 올바르게 나타납니다. 과거에는 WebBrowser가 브라우저에서와 같은 방식으로 부동 div를 표시하지 못하고 테이블 레이아웃으로 전환해야했습니다. 인라인 블록 디스플레이 유형 또는 다른 것을 지원하지 않습니까?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+0

가, 버튼이 사라질 것을 : 내가 찾은 솔루션은 다음과 같이 레지스트리에서 웹 브라우저를 구성하는 것이었다. 이것이 문제가 될 수 있습니까? – xr280xr

+0

호환성 모드를 사용 중이고 레지스트리 키를 사용하여 설정을 해제하거나 페이지에서 를 설정하면 버튼이 나타납니다! DOCTYPE은 최신 HTML5/CSS3 표준을 사용하도록 지정하지 않았습니까? 그렇다면 내 코드에 어떤 문제가 있습니까? 왜 가 제대로 작동하지만 은 단독으로 작동하지 않는 이유는 무엇입니까? – xr280xr

+0

새 태그는 실제로 관련이 없습니다. HTML5 또는 CSS3에 대해서는 언급하지 않습니다. – BoltClock

답변

0

그것은 스타일을 존중하지 않은 기본적으로 호환성 모드를 사용했다 : 그것은 중요한 경우

이 페이지에 대한 선언 문서 타입이다.

<meta http-equiv="X-UA-Compatible" content="IE=9" /> 

또는

로 변경
<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 

그것을 고정.

+0

어떻게 파이어 폭스에서 해결하겠습니까? –

0

WPF WebBrowser는 기본적으로 IE7 호환 모드로 실행됩니다. 웹 사이트를 제어 할 수있는 경우 < 메타 http-equiv = "X-UA 호환"... > 태그를 다른 답변에 설명 된대로 추가 할 수 있습니다. WPF 응용 프로그램과 웹 응용 프로그램을 실행하는 솔루션에서이 작업을 시도했습니다. 클라이언트 컴퓨터에서 IE11을 실행하고있었습니다. 메타 태그를 추가해도 사용자 에이전트 문자열과 관련된 문제는 해결되지 않았습니다. WebBrowser는 여전히 IE7이라고보고했습니다. 내가 IE에서 호환성보기를 켜면 난 그냥 발견

Registry.SetValue(
@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", 
AppDomain.CurrentDomain.FriendlyName, 
int.MaxValue);