Я добавляю кнопки на панель стека во время выполнения в C # WPF. То, что я хочу, это когда я прокручиваю элементы панели стека, как только достигаю последнего раза, я хочу, чтобы он показывал первый элемент после последнего, чтобы он как бы повторял список.
<ScrollViewer VerticalScrollBarVisibility="Hidden" CanContentScroll="True" HorizontalScrollBarVisibility="Hidden"
Name="SVMenu" Margin="-2,45,2,39" Grid.RowSpan="3">
<StackPanel x:Name="stackpanel_Menu1">
</StackPanel>
</ScrollViewer>
и это код для создания кнопок.
DataTable dt = db.VIEW_MENUS();
foreach (DataRow dr in dt.Rows)
{
Button Btn = new Button();
Label LB = new Label();
Btn.Content = dr[1].ToString();
Object obj = dr["MENUIMAGE"];
if (obj != null)
{
try
{
ImageBrush BtnBrush = new ImageBrush();
using (MemoryStream stream = new MemoryStream((byte[])obj))
{
BtnBrush.ImageSource = BitmapFrame.Create(stream,
BitmapCreateOptions.None,
BitmapCacheOption.OnLoad);
}
//// Use the brush to paint the button's background.
Btn.Background = BtnBrush;
}
catch (Exception)
{
}
}
Btn.Tag = dr["MENUID"];
Btn.Click += btn1_Click;
Style style = this.FindResource("CircleButton") as Style;
Btn.Style = style;
Btn.Width = 85;
Btn.Height = 85;
Btn.HorizontalAlignment = HorizontalAlignment.Center;
Btn.Margin = new Thickness(0,2,0,0.1);
//an(Btn);
LB.Foreground = Brushes.White;
LB.FontWeight = FontWeights.Bold;
LB.Content = dr["MENUTITLE"];
LB.HorizontalAlignment = HorizontalAlignment.Center;
StackPanel stackpanel_Menu = new StackPanel();
stackpanel_Menu.Children.Add(Btn);
stackpanel_Menu.Children.Add(LB);
stackpanel_Menu1.Children.Add(stackpanel_Menu);
, поэтому он добавляет 15 кнопок в панель стека, и я могу видеть их по вертикали. Когда я могу прокрутить до последней 15-й кнопки, я хочу, чтобы она снова показала мне первую кнопку и продолжала прокручивать вниз, а не заканчивая прокрутку.