Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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
C# 在WPF中,如何在代码隐藏中向面板添加元素,并将其放在最后一个现有元素之前?_C#_Wpf_Xaml - Fatal编程技术网

C# 在WPF中,如何在代码隐藏中向面板添加元素,并将其放在最后一个现有元素之前?

C# 在WPF中,如何在代码隐藏中向面板添加元素,并将其放在最后一个现有元素之前?,c#,wpf,xaml,C#,Wpf,Xaml,我有一个StackPanel,我动态地向其中添加图像。StackPanel底部有一个按钮,我希望图像位于按钮上方 当前的工作方式: <StackPanel> <Button /> <!-- Images are added here --> </StackPanel> <StackPanel> <!-- Images are added here --> <Button />

我有一个
StackPanel
,我动态地向其中添加图像。
StackPanel
底部有一个
按钮
,我希望图像位于按钮上方

当前的工作方式:

<StackPanel>
    <Button />

    <!-- Images are added here -->
</StackPanel>
<StackPanel>
    <!-- Images are added here -->

    <Button />
</StackPanel>

我希望它如何工作:

<StackPanel>
    <Button />

    <!-- Images are added here -->
</StackPanel>
<StackPanel>
    <!-- Images are added here -->

    <Button />
</StackPanel>

我怎样才能做到这一点


谢谢。

再添加一个子堆栈面板,向其中添加图像

<StackPanel>
    <StackPanel>
    <!-- Images are added here -->
    </StackPanel>
    <Button />
</StackPanel>

再添加一个子stackpanel,将图像添加到其中

<StackPanel>
    <StackPanel>
    <!-- Images are added here -->
    </StackPanel>
    <Button />
</StackPanel>

给你的堆栈面板起一个名字(例如myPanel),然后在你的代码隐藏中试试这个

myPanel.Children.Insert(0, myNewControl);

0表示stackpanel子元素中的元素,因此您可以将其放置在任何您喜欢的位置,但显然0是第一个元素。

为堆栈面板命名(例如myPanel),然后在代码隐藏中尝试此操作

myPanel.Children.Insert(0, myNewControl);
0表示stackpanel子元素中的元素,因此您可以将其放在任何您喜欢的位置,但显然0是第一个元素。

这将起作用:

int index = Stack.Children.Count - 1;
Stack.Children.Insert(index, image);
那么你的按钮总是最后一项。StackPanel中有多少项无关紧要。

这将起作用:

int index = Stack.Children.Count - 1;
Stack.Children.Insert(index, image);

那么你的按钮总是最后一项。StackPanel中有多少项无关紧要。

酷。不知道为什么我没有想到这一点。非常感谢:)酷。不知道为什么我没有想到这一点。非常感谢:)如果要添加任意数量的元素,请使用ObservableCollection、ItemsControl和DataTemplate。如果只有一个元素,请在设计时将其放入XAML中,并使用样式或ControlTemplate触发器控制其可见性。如果可能要添加任意数量的元素,请使用ObservaleCollection、ItemsControl和DataTemplate进行添加。如果只有一个元素,请在设计时将其放入XAML中,并使用样式或ControlTemplate触发器控制其可见性。这主意不错,但我更喜欢@CarbineCoder。谢谢!好主意,但我更喜欢@CarbineCoder。谢谢!好主意,但我更喜欢@CarbineCoder。谢谢!好主意,但我更喜欢@CarbineCoder。谢谢!