programing

WPF의 Windows 7 테마

skycolor 2023. 4. 12. 22:00
반응형

WPF의 Windows 7 테마

WPF 앱이 XP에서 실행 중이라도 Windows 7에서 실행 중인 것처럼 보이게 하는 방법이 있습니까?그냥 붙일 수 있는 테마를 찾고 있어요.Codeplex의 테마 프로젝트(https://archive.codeplex.com/?p=wpftemes)는 알고 있습니다만, 서포트하고 있지 않습니다.DataGrid그게 바로 제가 절실히 필요로 하는 겁니다Windows 7의 테마는 단순한 포트이거나 이미 파일 어딘가에 존재한다고 생각합니다.


갱신하다

@Lars Truijens 아이디어를 사용하여 Windows 7에서 주요 컨트롤을 찾을 수 있었지만 WPF 툴킷에서는 작동하지 않았습니다.DataGrid제어가 필요해

DataGridAero 테마에서는 이렇게 보입니다.

Windows XP 외관 데이터 그리드

DataGrid 이렇게 생겼으면 좋겠다

Windows 7-look Data Grid

그래서 저는 아직 이 문제에 대한 해결책을 찾고 있습니다.누군가가 WPF 툴킷 컨트롤을 커버하는 Aero 테마의 확장을 구축한 것은 아닐까요?다시 한 번 말씀드리지만, 어떤 정보라도 감사합니다.


업데이트 2 - DataGrid 문제 해결!

Aero 테마를 DataGrid 또는 다른 WPF Toolkit 컨트롤과 함께 사용하려면 두 번째 Aero 사전을 추가하면 App.xaml이 이렇게 표시됩니다.

<Application.Resources>
    ...
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
                Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
            <ResourceDictionary
                Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" />
            ...
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

또한, 나는 당신의 격자선을 끄는 것을 추천한다.DataGrid컨트롤(외관이 끔찍하기 때문에):

<DataGrid GridLinesVisibility="None" ...>

WPF에는 모든 Windows 버전에 표준 Windows 테마가 포함되어 있습니다.예를 들어, Windows XP 에서는, 다음의 순서로 Aero 테마(Vista 와 Windows 7 의 사용)를 설정할 수 있습니다.

  1. Presentation Framework를 추가합니다.필요에 따라 응용 프로그램 참조 목록에 Aero 표시
  2. App.xaml 편집

이것으로부터

<Application.Resources>
  <!-- Your stuff here -->
</Application.Resources>

여기에

<Application.Resources>
  <ResourceDictionary>
    <!-- Put your stuff here instead -->

    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Application.Resources> 

출처: http://mrpmorris.blogspot.com/2008/05/using-vista-aero-theme-in-xp-wpf-apps.html

기타 다른 대안:필요에 따라 해당 어셈블리를 응용 프로그램의 참조 목록에 추가하십시오.

<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Classic;component/themes/Classic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Royale;component/themes/Royale.NormalColor.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Homestead;component/themes/Luna.Homestead.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Luna.Metallic;component/themes/Luna.Metallic.xaml"/>
<ResourceDictionary Source="/PresentationFramework.Zune;component/themes/Zune.NormalColor.xaml"/>

Lars의 답변과 DanM의 업데이트에 추가:

배포할 때 aero Dll을 설치 디렉토리에 추가해야 합니다.

Presentation Framework 속성으로 이동하면 됩니다.참조 및 설정에 추가한 AeroCopyLocal=True그 후 사용하고 있는 전개 툴(WIX가 마음에 들어...)로 이동하여 전개된 파일 목록에 추가해야 합니다.

솔루션/프로젝트 속성으로 이동하여 "References" 아래에서 Presentation Framework에 대한 참조를 추가할 수 있습니다.Aero... 코드에 적용하면 잘 작동합니다.

내 대답이 너에게 도움이 되었으면 좋겠다.

언급URL : https://stackoverflow.com/questions/2075720/windows-7-theme-for-wpf

반응형