有誰知道爲什麼這個功能在Windows XP中不起作用。工作win7下窗體不透明窗口xp .net 2
public Form1()
{
InitializeComponent();
double flt = double.Parse("0,55");
ShowOpacity(flt);
}
private void ShowOpacity(double flt)
{
this.Opacity = flt;
}
有誰知道爲什麼這個功能在Windows XP中不起作用。工作win7下窗體不透明窗口xp .net 2
public Form1()
{
InitializeComponent();
double flt = double.Parse("0,55");
ShowOpacity(flt);
}
private void ShowOpacity(double flt)
{
this.Opacity = flt;
}
如果我只是鍵入this.Opacity = .55;它工作正常。
虛擬機運行錯誤的系統區域設置,而不是荷蘭。這是我認爲你來自的地方。不幸的是,「0,55」是像美國這樣的位置字符串的有效值,逗號被視爲千位分隔符。 Parse語句的結果是55,一個值,不透明度屬性靜默地截斷爲1而不引發異常。
控制面板+區域和語言選項,將您的機器切換到您的國家。檢查格式選項卡中的「十進制符號」設置,之後選擇高級以驗證它是逗號而不是句點。同時檢查設置的類型,你想要一個雙重的,而不是一個字符串。
hans你是一個天才! –
罰款從MSDN - Form.Opacity:
的Windows 2000,Windows 2000專業版,Windows 2000的服務器,Windows 2000高級服務器,Windows XP家庭版,Windows XP專業x64版,Windows Server 2003平臺注意:支持分層Windows API。該屬性對無法顯示分層窗口的平臺沒有影響。另外,某些顯示驅動程序不支持分層。
所以,這個問題很可能與您的顯示驅動程序。
其中重要的部分是關於顯示驅動程序。如果您在XP虛擬機中運行此操作,那可能是您看不到透明度的原因。否則,它就是說在Windows XP中支持分層窗口(該屬性在封面下使用)*。 –
是的,即時通訊在虛擬機上運行這個 –
你能給我們提供一些關於你的環境的更多細節嗎?你在虛擬機中運行Windows XP嗎?哪一個?計算機有什麼樣的顯卡/驅動程序?在Windows XP下,這段代碼對我來說絕對有效。 –
我在虛擬機中運行這段代碼。謝謝。 –
這很可能是您的問題。我現在沒有方便測試的虛擬機,所以我不能肯定地說。其中一些可能具有足夠好的視頻驅動程序來支持此功能,但遠未得到保證 - 例如,已知分層窗口不能與終端服務器一起使用。預計它可以在真正的Windows XP客戶端上正常工作。 –