WPF中简单的图片浏览功能

废话不说直接上代码:

/// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        ObservableCollection<BitmapImage> bmList;
        int index = 0;  //记录索引      

        BackgroundWorker bw = new BackgroundWorker();
        public MainWindow()
        {
            InitializeComponent();
            InitList();
            CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
            bw.DoWork += new DoWorkEventHandler(bw_DoWork);
            button1.Click += new RoutedEventHandler(button1_Click);
            button2.Click += new RoutedEventHandler(button2_Click);
            button3.Click += new RoutedEventHandler(button3_Click);
        }

        void button2_Click(object sender, RoutedEventArgs e)
        {
            if (index < bmList.Count - 1)
                index++;
            else
                index = 0;
        }

        void button1_Click(object sender, RoutedEventArgs e)
        {
            if (index > 0)
                index--;
            else
                index = bmList.Count - 1;
        }

        bool flag = true;
        void button3_Click(object sender, RoutedEventArgs e)
        {
            if (flag == true)
            {
                bw.RunWorkerAsync();
                flag = false;
                (sender as Button).Content = "End";
            }
            else
            {
                flag = true;
                (sender as Button).Content = "Start";
            }
         }

        void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!e.Cancel)
            {
                button2_Click(sender, new RoutedEventArgs());
                System.Threading.Thread.Sleep(2000); //停2秒  
                e.Cancel = flag;
            }
        }

        List<string> list = new List<string>();
        public void InitList()
        {
            list = System.IO.Directory.GetFiles("../../Image/").ToList();
            bmList = new ObservableCollection<BitmapImage>();

            for (int i = 1; i < list.Count; i++)
            {
                Uri url = new Uri(list[i].Substring(5), UriKind.Relative);
                BitmapImage bmImg = new BitmapImage(url);
                bmList.Add(bmImg);
            }
        }

        void CompositionTarget_Rendering(object sender, EventArgs e)
        {
            this.imgViewer.Source = bmList[index];
            label1.Content = index.ToString();
            this.imgViewer.Width = this.imgViewer.Source.Width;
            this.imgViewer.Height = this.imgViewer.Source.Height;
                  }
    }


 

以上代码参考http://www.cnblogs.com/dreamzgj/archive/2012/02/29/2373850.html修改而成。

 

效果图如下:

 

如果单击start按钮,程序会自动浏览图片。

如果单击左右按钮,可以手动浏览。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是一种用于创建Windows应用程序的用户界面框架,它提供了丰富的图形、动画和多媒体功能,非常适合实现图片浏览功能。 首先,我们可以使用WPF的布局控件,如Grid、StackPanel、WrapPanel等来创建图片浏览器的布局。可以将图片以网格状、列表状或者平铺方式显示出来,通过设置布局控件的属性来达到不同显示效果。 然后,我们可以使用WPF的Image控件来显示图片。通过绑定图片路径,将图片加载到Image控件上,并设置合适的布局和尺寸,使得图片浏览呈现出较好的显示效果。同时可以利用WPF的特性,如绑定、命令等来实现图片的放大、缩小、旋转、拖拽等交互操作。 另外,为了实现图片浏览器的导航功能,我们可以使用WPF的按钮、菜单和导航控件,如ToolBar、Menu、TabControl等来增加上一页、下一页、首页、尾页、放大、缩小等功能按钮,并通过事件绑定和命令来实现相关操作。 此外,WPF还提供了强大的动画和过渡效果功能,我们可以利用这些功能,为图片浏览器增加一些华丽的过渡效果,如渐变、旋转、淡入淡出等,提升用户体验。 最后,在WPF,我们可以采用MVVM(Model-View-ViewModel)架构来实现图片浏览器的功能。通过创建ViewModel类,将图片数据和操作逻辑与界面分离,实现数据绑定和命令绑定,提高代码的可维护性和重用性。 总的来说,WPF提供了许多强大的功能和灵活的设计模式来实现图片浏览功能,开发者可以根据自己的需求和技术实力,选择最适合的方案来完成项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值