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。谢谢!