C# 如何使用相同的Zindex设置项目不';你不会出错吗?

C# 如何使用相同的Zindex设置项目不';你不会出错吗?,c#,wpf,C#,Wpf,我在WPF的main窗口中有一个简单的Canvas 首先,我将向画布添加一个高度和宽度分别为100和0的矩形。 之后,我将向同一画布添加一个类似的红色矩形和0的Zindex 这是我的代码: var R1 = new Rectangle(); R1.Height = 100; R1.Width = 100; R1.Fill = Brushes.Blue; Canvas.SetLeft(R1, 100);

我在
WPF
main窗口中有一个简单的
Canvas

首先,我将向画布添加一个高度和宽度分别为100和0的矩形。 之后,我将向同一画布添加一个类似的红色矩形和0的Zindex

这是我的代码:

        var R1 = new Rectangle();
        R1.Height = 100;
        R1.Width = 100;
        R1.Fill = Brushes.Blue;
        Canvas.SetLeft(R1, 100);
        Canvas.SetTop(R1, 100);
        Canvas.SetZIndex(R1, 0);
        Can1.Children.Add(R1);

        var R2 = new Rectangle();
        R2.Height = 100;
        R2.Width = 100;
        R2.Fill = Brushes.Red;
        Canvas.SetLeft(R2, 100);
        Canvas.SetTop(R2, 100);
        Canvas.SetZIndex(R2, 0);
        Can1.Children.Add(R2);
R2的位置是如何被占据的,元素是如何被添加到画布的,而不会引发任何错误?结果是R2被放置在R1之上,但我没有将它的Zindex设置为大于0

R2的位置是如何确定的,元素是如何确定的 是否已添加到画布而未引发任何错误

元素可以放置在具有相同z索引的父容器中。如果不在其上设置任何z索引,默认情况下,它们将添加相同的z索引。因此,没有错误

结果是R2被放置在R1之上,但我没有设置Zindex 它的值必须大于0

如果您没有在新的子元素上设置更高的z索引,则最后添加的子元素始终获胜,即它将放置在具有相同z索引的元素上。因此,在您的案例中,R2将显示在R1上方

R2的位置是如何确定的,元素是如何确定的 是否已添加到画布而未引发任何错误

元素可以放置在具有相同z索引的父容器中。如果不在其上设置任何z索引,默认情况下,它们将添加相同的z索引。因此,没有错误

结果是R2被放置在R1之上,但我没有设置Zindex 它的值必须大于0


如果您没有在新的子元素上设置更高的z索引,则最后添加的子元素始终获胜,即它将放置在具有相同z索引的元素上。因此,在您的情况下,R2将显示在R1上方。

首先,不要在WPF的过程代码中创建或操作UI元素。这就是XAML的作用。其次,不,设置属性不应该“引发错误”。首先,不要在WPF的过程代码中创建或操作UI元素。这就是XAML的作用。其次,不,设置属性不应该“引发错误”。如果它是一个完全有效的值,则要少得多。