Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight WPF应用程序中的SetTop出现问题_Wpf_Silverlight - Fatal编程技术网

Silverlight WPF应用程序中的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

我无法在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
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


有关的更多信息。

非常感谢。令人惊讶的是,如此小的事情竟然会导致重大挫折。再次感谢。不用担心-附加属性可能会有点混乱:-)非常感谢。令人惊讶的是,如此小的事情竟然会导致重大挫折。再次感谢。不用担心-附加属性可能会有点混乱:-)