2011-03-20 56 views
8

因此,WPF中消息框的按鈕不是操作系統的主題。
我甚至試過this method,它沒有工作。WPF MessageBox按鈕不是操作系統主題

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


編輯:它現在。

+0

我已經爲你更新了我的答案。 – Prisoner 2011-03-20 17:03:32

+2

你是怎麼做到的?當我編譯時出現以下錯誤: 錯誤找不到文件'Microsoft.Windows.Common-Controls,Version = 6.0.0.0,Culture = *,PublicKeyToken = 6595b64144ccf1df,ProcessorArchitecture = *,Type = win32' 我正在使用Windows 7 x64 – 2013-01-22 17:34:33

+0

@AdeA 從Visual Studio中,進入項目屬性 - >安全 - >取消選中「啓用ClickOnce安全設置」複選框 這解決了我的問題。 – 2014-09-03 12:58:18

回答

9

您所做的更改已保存,但在VS中調試時無法查看。要解決此問題,請右鍵單擊您的項目並單擊「屬性」,然後轉到「調試」。在名爲「啓用Visual Studio託管過程」的頁面底部有一個複選框 - 取消選中此選項。建議您在進行此更改後重新啓動Visual Studio。

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

+0

請詳細說明...... – Vercas 2011-03-20 16:34:11

+0

@Vercas更新了答案,只好開機進入windows。 – Prisoner 2011-03-20 17:09:21

+0

這很奇怪,對我來說工作得很好。你只是調用'MessageBox.Show()'? – Prisoner 2011-03-20 17:51:32

3
+0

這並沒有真正解決問題,只是一種避免它.. – Prisoner 2011-03-20 16:22:57

+0

同意和理解 - 只是試圖幫助解決問題的方法:) – Stuart 2011-03-20 16:24:22

+0

我沒有說我拒絕替代品。 – Vercas 2011-03-20 16:24:31

17

這是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> 

現在,消息框將有操作系統的視覺風格,Aero的外觀與默認情況下,Vista和向上發光的關閉按鈕。

如果你在Visual Studio 2010中這樣做,那麼這個清單條目已經存在,但被註釋掉了。你會在文件的底部找到它。只是刪除的意見,<!--<dependency>之前和之後--></dependency>

要注意的是,當你用調試器並啓用在Visual Studio宿主進程運行未啓用此清單。這是您的build目錄中的一個不同的.exe文件,yourapp.vshost.exe。項目+屬性,調試選項卡,向下滾動,取消選中「啓用Visual Studio託管過程」。這有一些與安全有關的副作用,實際上沒有太多的意義,因爲你的用戶永遠不會有這個問題。

+0

這就是我所做的,它不工作...... – Vercas 2011-03-20 16:40:30

+0

爲我和其他許多程序員工作過。你做錯了什麼?在你的問題中發佈清單的內容。 – 2011-03-20 16:41:17

+0

好的。我也會發佈一個文件... – Vercas 2011-03-20 16:44:55