WPF屬性與基本物件點選操作
wpf中有兩種屬性名詞還蠻值得探討的。
一、附加屬性(attached property)
指使用父項型別的屬性來做為附加屬性(用法有點像靜態屬性),
例如當設定了之後,父元素移動位置時,子元素也會做相對位置的移動。
設定方法為
<Canvas x:Name="Canvas1" HorizontalAlignment="Left" Height="100" Margin="190,100,0,0" VerticalAlignment="Top" Width="100"> <Canvas x:Name="Canvas2" Height="100" Width="100" Canvas.Top="-65" Canvas.Left="60"> <Canvas x:Name="Canvas3" Height="100" Canvas.Left="100" Canvas.Top="80" Width="100"/> </Canvas> </Canvas>
如上例,
Canvas2的Canvas.Top="-65",意思為Canvas2距離Canvas1上緣往上推65距離的位置為起點,
Canvas2的Canvas.Left="60",意思為Canvas2距離Canvas1左側往右推60距離的位置為起點。
二、相依屬性(dependency property)
相依屬性是很自然而然地發生的,承上例,
<Canvas x:Name="Canvas1" HorizontalAlignment="Left" Height="100" Margin="114,97,0,0" VerticalAlignment="Top" Width="100" Background="AliceBlue"> <Canvas x:Name="Canvas2" Height="100" Width="100" Canvas.Left="65" Canvas.Top="-65" Background="Aqua"> </Canvas> </Canvas>
Canvas2指定背景色為Aqua,當把Canvas2的背景色屬性移除時,
會發現Canvas2變透明了,但其左下角的顏色卻不是也變成透明,
反而是繼承了Canvas1的顏色,這就是相依屬性的作用,
但是以「人」的觀點來看,這是很自然發生的。
三、物件點選
當你想要於Design區域藉由點擊某物件來找尋該物件的XAML代碼時,
可以直接在XAML Code反灰區域發現該物件代碼起始位置,
然後再按一下右側卷軸即可出現編輯游標
若想移動某物件卻發現移不了時,
請務必將滑鼠游標放在該物件的邊界上,此時滑鼠圖示變成類似下圖圖案時,
再按住該物件不放才可移動該物件。
四、距離與刻度
於Blend操作時會發現Design區域會有許多刻度,如下圖,
1~3項與4~6項刻度是以整個mainwindow畫布來當作絕對位置,
7項與14項為畫布X軸原點到canvas物件的距離108,
10項與13項為畫布Y軸原點到canvas物件的距離24,
8項表示canvas物件的寬度為100,
11項表示canvas物件的高度為100,
至於第9與第12項我就不知道是什麼意思了。
參考資料: