我試圖創建一個Canvas
,其中可以使用三個文本框更改顏色:R,G和B.每當TextBox
中的值發生更改時,畫布顏色都需要更改。 TextBox
僅限於0到255之間的整數,只要輸入了有效數字,我需要更改顏色Canvas
。使用文本框更改畫布顏色
我知道Canvas
背景是通過SolidColorBrush
設置的,但我不知道如何從任意一組RGB值創建SolidColorBrush
。
我試圖創建一個Canvas
,其中可以使用三個文本框更改顏色:R,G和B.每當TextBox
中的值發生更改時,畫布顏色都需要更改。 TextBox
僅限於0到255之間的整數,只要輸入了有效數字,我需要更改顏色Canvas
。使用文本框更改畫布顏色
我知道Canvas
背景是通過SolidColorBrush
設置的,但我不知道如何從任意一組RGB值創建SolidColorBrush
。
你有三個文本框,我會假設你可以從這些文本中提取文本,並且可以將它解析爲合適的字節值。假設你有三個字節: - :
var brush = new SolidColorBrush(Color.FromRgb(r,g,b));
謝謝你的幫助,顯然我需要先創建形狀,然後添加我可以從對象調用的參數。 –
您可以使用var brush = new SolidColorBrush(Color.FromRgb(r,g,b));
並將畫布顏色設置爲此屬性。
刪除以前的評論,因爲我覺得我還不清楚 - 您已經發布了使用'System.Drawing.Color'一個答案,但問題是關於一個WPF'Canvas'它將使用'System.Windows.Media.Color'。 – pstrjds
我的回答是錯誤的? – 2017-04-24 21:29:04
是的 - 因爲'System.Drawing.Color'和'System.Windows.Media.Color'是不同的。您不能創建一個'System.Windows.Media.SolidColorBrush'以'System.Drawing.Color'的WPF [Canvas.Background(https://msdn.microsoft.com/en-us/library/system.windows。 controls.panel.background(v = vs.110)的.aspx)取'System.Windows.Media.Brush' – pstrjds
你有R,G,B,那麼你可以用下面這行代碼,它使用Color.FromRgb靜態方法從你的文本框創建從三個值的顏色營造
SolidColorBrush
查看了[SolidColorBrush]的文檔(https://msdn.microsoft.com/en-us/library/system.windows.media.solidcolorbrush(v = vs.110).aspx)。有一個構造函數使用'Color',可以通過靜態方法[Color.FromRgb](https://msdn.microsoft.com/en-us/library/system.windows.media.color。 fromrgb(v = vs.110)的.aspx)。這應該告訴你從哪裏開始。記住MSDN文檔是你的朋友。閱讀文檔,看看例子,這將幫助你。 – pstrjds我編輯了你的問題,試圖澄清你在問什麼。我不確定我是否編輯得適當,所以請檢查並修改,如果我不正確地理解它。 – pstrjds