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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值