簡體   English   中英

WPF MessageBox按鈕不是OS主題

[英]WPF MessageBox buttons aren't OS themed

因此,WPF中我的消息框的按鈕不是OS的主題。
我甚至嘗試過這種方法但它沒有用。

我有一個清單,我在Windows 7 Ultimate x86和.NET Framework 4 Client Profile下運行。


編輯:它現在有效。

這是WPF中的一個奇怪的故障,它缺少激活視覺樣式的管道。 雙奇是因為這不難做到。

解決方法是修改嵌入程序中的清單。 選擇您的EXE項目,然后選擇Project + Add New Item,General,選擇Application Manifest File。 您將獲得嵌入的默認清單,請注意<assemblyIdentity><trustInfo>元素。 將其粘貼在兩者之間:

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

消息框現在將具有操作系統的視覺樣式,默認情況下在Vista和更高版本上具有發光關閉按鈕的Aero外觀。

如果在Visual Studio 2010中執行此操作,則此清單條目已存在但已注釋掉。 你會在文件的底部找到它。 只需刪除注釋, <!--<dependency>之前和--></dependency>

請注意,在啟用調試器和Visual Studio宿主進程的情況下,未啟用此清單。 這是構建目錄中的一個不同的.exe文件,yourapp.vshost.exe。 Project + Properties,Debug選項卡,向下滾動,取消選中“啟用Visual Studio托管過程”。 這有一些與安全相關的副作用,實際上沒有太多意義,因為你的用戶永遠不會遇到這個問題。

您所做的更改已保存,但在VS中進行調試時無法查看它們。 要解決此問題,請右鍵單擊您的項目,然后單擊“屬性”,然后轉到“調試”。 頁面底部有一個名為“啟用Visual Studio托管過程”的復選框 - 取消選中此項。 建議您在進行此更改后重新啟動visual studio。

或者,您可以在不進行調試的情況下構建(CTRL + F5)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM