下面是一個例子:爲什麼將LinearGradientBrush.WrapMode設置爲Clamp失敗並顯示ArgumentException(「參數無效」)?
public MainForm()
{
InitializeComponent();
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0,0,100,100),Color.Blue, Color.White,angle:0);
brush.WrapMode = WrapMode.Tile; // OK
brush.WrapMode = WrapMode.Clamp; // Causes Unhandled exception alert, offering break
}
在VS2008輸出窗口這表明:
類型 'System.ArgumentException' 的第一次機會異常發生在System.Drawing.dll程序 其他信息:參數無效。
(PIC http://i.imgur.com/nM2oNm1.png)
這是Windows 7
證實LinearGradientBrush.WrapMode接受WrapMode
「獲取或設置一個WrapMode枚舉指示此 LinearGradientBrush的換行模式。「
這 https://msdn.microsoft.com/en-us/library/vstudio/system.drawing.drawing2d.wrapmode(v=vs.90).aspx
確認WrapMode.Clamp有效期爲梯度:
「夾住紋理或梯度不平鋪」。
我可以在W8.1上用VS15確認這一點。這看起來像一個錯誤,因爲'Clamp'即不帶色的延續,可能是最後一種顏色會非常有用。您可以嘗試使用'InterpolationColors'解決方案,但這需要您填寫一些尺寸的知識。 – TaW
謝謝。請輸入您的答案作爲答案,以便我可以接受。 – ChrisJJ
這是一個奇怪的錯誤。您可以嘗試創建LinearGradientBrush的位圖切片,然後在TextureBrush中使用該位圖,當WrapMode設置爲鉗位時不會引發錯誤。 – LarsTech