Silverlight WPF应用程序中的SetTop出现问题
我无法在Silverlight应用程序中使用SetTop属性画布。下面是重现该问题的最少代码Silverlight WPF应用程序中的SetTop出现问题,wpf,silverlight,Wpf,Silverlight,我无法在Silverlight应用程序中使用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 f
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(root,100)”更改parent1的显示位置 这种行为令人惊讶。我甚至没有将parent2添加为子对象之一,但它仍然会影响布局
有人能解释一下我做错了什么吗?我想你是在“向后”使用SetTop。SetTop在画布的子控件上设置attached属性,以便执行以下操作:
parent2.SetTop(root,100)
将root的Canvas.Top属性设置为100(而不是parent2)(因此也将移动root的所有子级)。你应该做的是:
root.SetTop(parent, 0)
这将父级的Canvas.Top属性设置为0
有关的更多信息。我认为您正在使用SetTop“向后”。SetTop在画布的子控件上设置attached属性,以便执行以下操作:
parent2.SetTop(root,100)
将root的Canvas.Top属性设置为100(而不是parent2)(因此也将移动root的所有子级)。你应该做的是:
root.SetTop(parent, 0)
这将父级的Canvas.Top属性设置为0
有关的更多信息。非常感谢。令人惊讶的是,如此小的事情竟然会导致重大挫折。再次感谢。不用担心-附加属性可能会有点混乱:-)非常感谢。令人惊讶的是,如此小的事情竟然会导致重大挫折。再次感谢。不用担心-附加属性可能会有点混乱:-)