C# 移动列表框项目,而不是“移动”;选择栏“;

C# 移动列表框项目,而不是“移动”;选择栏“;,c#,wpf,xaml,C#,Wpf,Xaml,1-是否可以移动列表框项目而不是“选择器栏”。 这样,选择栏具有静态位置,但项目将移动 我试图实现的是类似于此图像底部的滚动条: 2-具有水平方向的Listbox是否是实现示例中的缩略图查看器的合适工具 3-我想在以后的更新中设置动画?可能吗 检查下面代码实现1和2中的组件。在水平列表框中间的项目总是被选中。列表框需要一些样式才能看起来很好,比如使用不透明度来显示哪些项目被显示,哪些项目没有显示 XAML: 代码隐藏: using System; using System.Collecti

1-是否可以移动列表框项目而不是“选择器栏”。 这样,选择栏具有静态位置,但项目将移动

我试图实现的是类似于此图像底部的滚动条:

2-具有水平方向的Listbox是否是实现示例中的缩略图查看器的合适工具


3-我想在以后的更新中设置动画?可能吗

检查下面代码实现1和2中的组件。在水平列表框中间的项目总是被选中。列表框需要一些样式才能看起来很好,比如使用不透明度来显示哪些项目被显示,哪些项目没有显示

XAML:


代码隐藏:

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;

namespace FlowListTest
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            DataContext = this;
        }

        public IEnumerable<string> Items
        {
            get
            {
                for (int i = 0; i < 100; i++)
                {
                    yield return i.ToString();
                }
            }
        }

        private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            (sender as ListBox).SelectedIndex = _selectedIndex;
        }

        private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
        {
            _selectedIndex = (int)(e.HorizontalOffset + Math.Truncate(e.ViewportWidth / 2));
            (sender as ListBox).SelectedIndex = _selectedIndex;
        }

        private int _selectedIndex;
    } 
}
使用系统;
使用System.Collections.Generic;
使用System.Windows;
使用System.Windows.Controls;
命名空间流列表测试
{
公共部分类Window1:Window
{
公共窗口1()
{
初始化组件();
DataContext=this;
}
公共数字项目
{
得到
{
对于(int i=0;i<100;i++)
{
收益率收益率i.ToString();
}
}
}
SelectionChanged上的私有无效(对象发送方,SelectionChangedEventArgs e)
{
(发件人作为列表框)。SelectedIndex=\u SelectedIndex;
}
私有void OnScrollChanged(对象发送方,ScrollChangedEventArgs e)
{
_selectedIndex=(int)(e.HorizontalOffset+Math.Truncate(e.ViewportWidth/2));
(发件人作为列表框)。SelectedIndex=\u SelectedIndex;
}
私有int_选择的索引;
} 
}
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;

namespace FlowListTest
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            DataContext = this;
        }

        public IEnumerable<string> Items
        {
            get
            {
                for (int i = 0; i < 100; i++)
                {
                    yield return i.ToString();
                }
            }
        }

        private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            (sender as ListBox).SelectedIndex = _selectedIndex;
        }

        private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
        {
            _selectedIndex = (int)(e.HorizontalOffset + Math.Truncate(e.ViewportWidth / 2));
            (sender as ListBox).SelectedIndex = _selectedIndex;
        }

        private int _selectedIndex;
    } 
}