2017-02-13 84 views
-1

我有帆布和按鈕,代碼:附加屬性Canvas.left改變按鈕位置

Canvas canv = new Canvas(); 
Button btn = new Button(); 
btn.SetValue(Canvas.LeftProperty,50.0); 
canv.Children.Add(btn); 

碼設置按鈕位置50,留在畫布上。但在此代碼中,我只將附加屬性Canvas.LeftProperty更改爲50.哪部分代碼更改了畫布中的按鈕位置?是否每個調用按鈕上的SetValue都會更改按鈕的位置?我想了解按鈕位置在哪裏定義以及它是如何工作的?

謝謝。

LEO

+0

我明白附加的特性非常好。我明白按鈕設置如何附加屬性。但我不明白在畫布中的按鈕位置和附加屬性之間的連接在哪裏Canvas.left – leoleo

回答

0

我瞭解的按鈕將附加屬性。但我不明白的地方是按鈕位置之間在帆布和附加屬性連接Canvas.left

它是Canvas類,來處理基於附加的值的元件的實際定位的ArrangeOverride方法。帆布*屬性:https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Controls/Canvas.cs,a23db2d321823084

Canvas.Left附加屬性設置表示的元素的左側及其父Canvas的左側之間的距離,無論是否在XAML標記或以編程方式設置的值。這是同一個屬性。它從哪裏或如何設置它沒有任何區別。

+0

謝謝,現在我明白了。謝謝。 – leoleo

+0

不客氣。請記住接受答案:http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow。 – mm8