2009-04-22 10 views
0

Silverlight AppでSetTopプロパティCanvasを使用できません。問題Silverlight WPFのSetTopで問題が発生する

from System import TimeSpan 
from System.Windows import Application, Duration, PropertyPath 
from System.Windows.Controls import Canvas, TextBlock 
from System.Windows.Media import SolidColorBrush, Colors 
from System.Windows.Media.Animation import (
    DoubleAnimation, Storyboard, RepeatBehavior 
) 

root = Canvas() 

root.Children.Clear() 
root.Resources.Clear() 
#root.Background = SolidColorBrush(Colors.Black) 

parent = Canvas(Width = 100, Height = 100) 
parent.Background = SolidColorBrush(Colors.Black) 
parent.SetTop(root, 0) 
parent.SetLeft(root, 0) 

parent2 = Canvas(Width = 100, Height = 100) 
parent2.Background = SolidColorBrush(Colors.Blue) 
parent2.SetTop(root, 100) 

root.Children.Add(parent) 

Application.Current.RootVisual = root 

を再現する最小のコードは次の行「parent2.SetTop(ルート、100)は」親1が表示される位置を変更します。

この動作は驚くべきことです。私は子オブジェクトの1つとしてparent2を追加していなくても、まだレイアウトに影響しています。

誰かが私が間違っていることを説明できますか?

答えて

3

あなたはSetTopを「後方に」使用していると思います。セットトップは、キャンバスの子コントロールに添付プロパティを設定しますので、これをやって:

parent2.SetTop(root,100) 

は100(ないparent2)であることをルートのCanvas.Topプロパティを設定します(ので、それゆえの子供たちのすべてを移動しますルートも)。あなたがやるべきことは次のとおりです。

MSDNに0

詳細情報であることを、親のCanvas.Topプロパティを設定します

root.SetTop(parent, 0) 

+0

多くのありがとうございます。そのような小さなものが大きな欲求不満を引き起こす可能性があるのは驚くべきことです。再度、感謝します。 – Manish

+0

心配ありません - 添付プロパティは多少混乱する可能性があります:-) –

関連する問題