重新排列其中包含多个项目的堆栈面板 - WPF 和 C#
Rearrange stackpanels with a number of items in them - WPF and C#
我目前有七个不同的面板,其中包含按钮、文本框和其他项目。每个面板在水平方向上都很长,目前彼此堆叠在一起,所有面板都在滚动查看器内,开始时不可见。 Above the scroll viewer is a listbox with the names of each of the seven different panels and when one is selected, that panel is made visible.我正在尝试找到一种方法,以便在从列表框中选择一个面板时,将该面板移动到滚动查看器的顶部。我看过项目控制示例,但他们没有说明在这种情况下如何控制组或面板中的多个项目。抱歉,如果这有点令人困惑,感谢您的帮助。
首先,您在 ScrollViewer
中使用的是哪个主容器面板?正如您所说,7 个面板堆叠在一起,所以我假设您在 ScrollViewer
中有一个 StackPanel
。
现在,您需要操作 Children collection
个 StackPanel
。
例如;
<ScrollViewer Margin="0,61,0,0">
<StackPanel x:Name="MainPnl">
... 7 panels ...
</StackPanel>
</ScrollViewer
代码:
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
var item = (sender as ComboBox).SelectedItem;
string name = (item as ComboBoxItem).Content.ToString();
Panel pnl = FindName(name) as Panel;
int indexof = MainPnl.Children.IndexOf(pnl);
MainPnl.Children.RemoveAt(indexof);
MainPnl.Children.Insert(0, pnl);
}
我目前有七个不同的面板,其中包含按钮、文本框和其他项目。每个面板在水平方向上都很长,目前彼此堆叠在一起,所有面板都在滚动查看器内,开始时不可见。 Above the scroll viewer is a listbox with the names of each of the seven different panels and when one is selected, that panel is made visible.我正在尝试找到一种方法,以便在从列表框中选择一个面板时,将该面板移动到滚动查看器的顶部。我看过项目控制示例,但他们没有说明在这种情况下如何控制组或面板中的多个项目。抱歉,如果这有点令人困惑,感谢您的帮助。
首先,您在 ScrollViewer
中使用的是哪个主容器面板?正如您所说,7 个面板堆叠在一起,所以我假设您在 ScrollViewer
中有一个 StackPanel
。
现在,您需要操作 Children collection
个 StackPanel
。
例如;
<ScrollViewer Margin="0,61,0,0">
<StackPanel x:Name="MainPnl">
... 7 panels ...
</StackPanel>
</ScrollViewer
代码:
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
var item = (sender as ComboBox).SelectedItem;
string name = (item as ComboBoxItem).Content.ToString();
Panel pnl = FindName(name) as Panel;
int indexof = MainPnl.Children.IndexOf(pnl);
MainPnl.Children.RemoveAt(indexof);
MainPnl.Children.Insert(0, pnl);
}