2011-03-20 1 views
8

WPF의 내 메시지 상자 단추는 OS에 의해 테마가 지정되지 않습니다.
나는 심지어 this method을 시도했지만 작동하지 않았습니다.WPF MessageBox 단추는 OS 테마가 아닙니다.

Windows 7 Ultimate x86 및 .NET Framework 4 클라이언트 프로필에서 실행되고 있습니다.


편집 : 이제 작동합니다.

+0

답변을 업데이트했습니다. – Prisoner

+2

작동 시키려면 어떻게 했습니까? 빌드 할 때 다음 오류가 발생합니다. 오류 'Microsoft.Windows.Common-Controls, Version = 6.0.0.0, Culture = *, PublicKeyToken = 6595b64144ccf1df, ProcessorArchitecture = *, Type = win32'파일을 찾을 수 없습니다. Windows 7 x64를 사용 중입니다. –

+0

@AdeA Visual Studio에서 "ClickOnce 보안 설정 사용"프로젝트 등록 정보 -> 보안 -> 선택을 취소하십시오. 이 문제가 해결되었습니다. –

답변

9

변경 사항은 저장되었지만 VS에서 디버깅하는 동안 볼 수는 없습니다. 이 문제를 해결하려면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '속성'을 클릭 한 다음 '디버그'로 이동하십시오. 페이지 하단에 "Visual Studio 호스팅 프로세스 사용"이라는 체크 박스가 있습니다.이 확인란의 선택을 취소하십시오. 이 변경 후 Visual Studio를 다시 시작하는 것이 좋습니다.

또는 디버깅하지 않고도 만들 수 있습니다 (Ctrl + F5).

+0

제발 자세히 ... – Vercas

+0

@ Vercas 업데이트 답변, 창문으로 부팅했다. – Prisoner

+0

그건 아주 이상하다. 나를 위해 잘 돌아갔다. 'MessageBox.Show()'를 호출하고 있습니까? – Prisoner

3
+0

이것은 실제로 문제를 해결하지 못합니다. 단지 그것을 회피합니다. – Prisoner

+0

합의하고 이해했습니다 - 문제 해결 방법을 도우려는 것입니다. – Stuart

+0

나는 대안을 거부하지 않았습니다. – Vercas

17

이 WPF에서 이상한 결함이다에도 http://wpftoolkit.codeplex.com/

더 많은 문서 내에서 게시, 시각적 스타일을 활성화하기 위해 배관이 없습니다. 이것이 어렵지 않기 때문에 두 배 이상입니다.

해결 방법은 프로그램에 포함 된 매니페스트를 수정하는 것입니다. EXE 프로젝트를 선택한 다음 Project + 새 항목 추가, 일반을 선택하고 응용 프로그램 매니페스트 파일을 선택하십시오. 포함 된 기본 매니페스트를 가져오고 <assemblyIdentity><trustInfo> 요소를 확인합니다. 사이에이 붙여 넣기 : 메시지 상자는 이제 운영 체제의 비주얼 스타일을해야합니다

<dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
      type="win32" 
      name="Microsoft.Windows.Common-Controls" 
      version="6.0.0.0" 
      processorArchitecture="*" 
      publicKeyToken="6595b64144ccf1df" 
      language="*" 
     /> 
    </dependentAssembly> 
    </dependency> 

, 에어로는 기본적으로 빛나는 닫기 버튼 Vista에서 최대로 본다.

Visual Studio 2010에서이 작업을 수행하는 경우이 매니페스트 항목은 이미 있지만 주석 처리되어 있습니다. 파일의 맨 아래에서 찾을 수 있습니다. 그냥 코멘트 <dependency> 이전 <!-- 등을 제거 -->

</dependency> 후주의 디버거 및 활성화는 Visual Studio 호스팅 프로세스를 실행할 때이 매니페스트가 사용되지 않도록. 이것은 빌드 디렉토리 인 yourapp.vshost.exe에있는 다른 .exe 파일입니다. 프로젝트 + 속성, 디버그 탭, 아래로 스크롤하여 "Visual Studio 호스팅 프로세스 사용"의 선택을 해제하십시오. 보안과 관련된 몇 가지 부작용이 있습니다. 사용자가이 문제를 결코 가질 수 없으므로 실제로 이렇게하는 것이 중요하지 않습니다.

+0

그게 내가 한 짓이고 작동하지 않았습니다 ... – Vercas

+0

저와 많은 프로그래머를 위해 일했습니다. 너 뭐 잘못 했니? 질문에 매니페스트의 내용을 게시하십시오. –

+0

확인. 나는 또한 파일을 게시 할 것입니다 ... – Vercas