gpt4 book ai didi

wpf - 如何更改 Stackpanel 中元素的位置?

转载 作者:行者123 更新时间:2023-12-05 01:15:14 25 4
gpt4 key购买 nike

我有一个 Stackpanel 和 5 个 child 。

    <StackPanel Orientation="Horizontal">
<TextBlock >1</TextBlock>
<TextBlock >2</TextBlock>
<TextBlock >3</TextBlock>
<TextBlock >4</TextBlock>
<TextBlock >5</TextBlock>
</StackPanel>

我想改变 child[2] 的位置。

如何在运行时改变元素的位置?

最佳答案

这可以通过跟踪 StackPanel 的 Children 属性的索引元素来实现。我向您发送了一些示例代码来演示其工作原理。例如,考虑以下代码:

    int currentSelectedIndex = stackPanel1.Children.IndexOf(CurrentSelectedTextBlock);
int downIndex = currentSelectedIndex + 1;
int childCount = stackPanel1.Children.Count;
if (downIndex < childCount)
{
stackPanel1.Children.RemoveAt(currentSelectedIndex);
stackPanel1.Children.Insert(downIndex, CurrentSelectedTextBlock);
}
else if (downIndex == childCount)
{
stackPanel1.Children.RemoveAt(currentSelectedIndex);
stackPanel1.Children.Insert(currentSelectedIndex, CurrentSelectedTextBlock);
}

它获取当前选定的 TextBlock 并将其索引向上移动一位。然后,您需要通过删除并再次插入 StackPanel 的 Children-property 来更新它。

我怀疑您是否想将 StackPanel 用于此类目的。使用 ItemsControl 更容易,例如 ListBox,因为它们可以绑定(bind)到 T 的 ObservableCollection。一旦绑定(bind)的集合更新,控件也会同样更新。

希望对您有所帮助。示例代码可下载here .

关于wpf - 如何更改 Stackpanel 中元素的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com