Margin プロパティは、オブジェクトの周りの余分なスペースを決定するために、すべての要素で使用されます。ほぼすべての種類のレイアウト (StackPanel、Grid、ContentControls など) で機能します。
Canvas.LeftProperty (および Top、Right、および Bottom) は、Canvas 内に直接ある要素にのみ適用されます。Canvas はこれらの値を使用して、オブジェクトの位置を決定します。Path のような Shape 要素を使用すると、Canvas は位置を決定するときに Shape の位置データも参照します。
技術的には、Canvas 添付プロパティは、Shape (存在する場合) および Margin の固有の位置データと共に蓄積する必要があります。3つすべてを使用して位置を変更できます。しかし、通常はシンプルにしようとします。
たとえば、Rectangle は、その Width プロパティと Height プロパティ、および Canvas.Left と Canvas.Top を使用する必要があります。Path は、そのポイント データに依存するか、Canvas.Left と Canvas.Top でオフセットします。Canvas 内の要素には margin を使用しない方が適切に制御できるため、margin を使用しないでください。ただし、技術的には可能です。