2011-12-15 3 views
0

Windows 용 WPF 데스크톱 응용 프로그램을 개발 중입니다. .foo라고 가정 해 봅시다. 이 파일 유형은 앱이 수정 한 파일을 나타냅니다. 예를 들어 원래는 .txt 였지만 이제는 .txt.foo입니다 (또는 .txtfoo를 사용할 수 있습니다).파일 확장자와 관련된 아이콘을 어떻게 바꿀 수 있습니까?

원본 아이콘 상단에 작은 응용 프로그램 로고를 표시하고 싶습니다 (예 : 원본 아이콘 상단에 작은 자물쇠가 있음).

완전히 새로운 아이콘을 만들고 싶지 않습니다. 사용자를 혼동하고 싶지 않아서 앱을 사용하기 전에 이미 알고있는 아이콘을보고 싶습니다. 그래서 현재의 아이콘 위에 작은 로고를 추가하고 싶습니다.

이것도 가능합니까?

+3

가능합니다. 나는 개인적으로 그것을 반대 할 것이다. 모달 대화 상자와 같습니다. 좋은 생각 인 것 같지만, 지구상의 모든 개발자가 혼란을 겪으 려한다면 혼란을 상상해보십시오. 파일이 이제 앱과 연결되면 아이콘이 있어야합니다. 변경된 메모장 아이콘 또는 수정 된 워드 패드 아이콘을 표시하고 해당 앱에서 열 수 없으면 *** 사용자 혼란에 ***을 추가합니다. – David

+0

David에게 감사드립니다. 좋은 지적이지만 : 첫 번째 사항은 문제가되지 않습니다. 임 .txt 아이콘을 수정하지 않으려면 .txtfoo 만 있으므로 충돌이 없다고 가정하는 것이 합리적입니다. 두 번째 것에 관해서는 사실 프로세스가 끝나면 결국 원래의 응용 프로그램으로 열릴 것입니다 :)하지만 어쨌든, 이것은 흥미로운 토론입니다. 어떻게 할 수 있겠습니까? – rgargente

+1

다음을 수행해야합니다. 현재 사용중인 아이콘을 확인하려면 레지스트리를 읽으십시오. System.Drawing.Graphics를 사용하여 파일을 열고 수정 한 다음 새 아이콘으로 저장 한 다음 적절한 레지스트리 설정을 작성하여 파일 형식을이 아이콘과 연결하십시오. 그런 다음 앱에 그러한 일을 할 수있는 권한이 있는지 확인해야합니다 (권장하지 않음). 웹에서 코드를 모두 수행하는 방법을 보여주는 코드가 있습니다. 완전한 해결책은 대답으로 게시하기에는 너무 많은 것입니다. 그렇기 때문에 질문을 현재 형식으로 완전히 대답 할 수 없기 때문에 "진정한 질문이 아닙니다."라는 질문을 끝내기로했습니다. 죄책감이 ... – David

답변

2

사용자 지정 파일 형식을 사용하는 경우 이름을 바꿀 파일마다 수정 된 아이콘이 있어야합니다. 설치 프로그램이 실행될 때 파일 유형이 너무 많지 않으면 .txt.foo가 아닌 .txtfoo가 하나의 솔루션이 될 수 있습니다. 레지스트리에 새 파일 유형을 등록하고 수정 된 아이콘을 설치할 수 있습니다. 그러나 이들이 많으면 문제가됩니다. 코드 프로젝트에 대한 Get Registered File Types and Their Associated Icons in C# 기사 및 C#: Set File Type Association은 사용자가하려는 일에 도움이 될 수 있습니다.

그렇지 않으면 아이콘 오버레이 처리기를 찾는 것처럼 들립니다. 이 방법을 사용하면 기본 .foo 아이콘 상단에있는 원래 유형을 나타내는 일련의 작은 아이콘 오버레이가 있어야합니다. 자세한 내용은 MSDN의 Creating Icon Overlay Handlers 문서를 참조하십시오.

관련 문제