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項我就不知道是什麼意思了。

 

參考資料:

附加屬性概觀

對齊、邊界和填補概觀

面板概觀