繁体   English   中英

在C#WPF中将图像创建为按钮中的按钮

[英]Creating Images as buttons in code in C# WPF

我想在C#WPF中将图像创建为按钮中的按钮(不是带有BG图像的按钮,而是实际图像)。 我在该站点上阅读过使用PictureBox作为图像,并且发现WPF等效于Image。 问题是,虽然我发现PictureBox具有.Click可以设置,但Image没有。 我想做的两件事是:

  1. 创建一个按钮阵列,这些按钮是图像并且可以单击。
  2. 具有按钮的未单击状态和单击状态的图像。

我想念的东西在我面前吗?

这是我创建按钮的循环:

sideBarButtons = new Button[infoLoader.categoriesLength];
            sideButtons = new Image[infoLoader.categoriesLength];
            ImageBrush[] myBg = new ImageBrush[infoLoader.categoriesLength];
            for (int i = 0; i < sideBarButtons.Length; i++)
            {
                myBg[i] = new ImageBrush();
                myBg[i].ImageSource = new BitmapImage(graphicLoader.buttonUnselected[(i % myBg.Length)]);

                /*sideBarButtons[i] = new Button();
                sideBarButtons[i].Content = infoLoader.categories[i].name;
                sideBarButtons[i].Background = myBg[i];
                //sideBarButtons[i].BorderThickness = ;
                sideBarButtons[i].Width = 155;
                sideBarButtons[i].Height = 46;
                Canvas.SetLeft(sideBarButtons[i], 30);
                Canvas.SetTop(sideBarButtons[i], 10 + (46 * i));
                sideBarButtons[i].Click += new RoutedEventHandler(this.SideButton_Click);
                leftSideBar.Children.Add(sideBarButtons[i]);*/

                BitmapImage myBmp = new BitmapImage();
                myBmp.BeginInit();
                myBmp.UriSource = myBg[i];
                myBmp.EndInit();

                sideButtons[i] = new Image();
                sideButtons[i].Source = myBmp;
                sideButtons[i].Width = 155;
                sideButtons[i].Height = 46;
                Canvas.SetLeft(sideButtons[i], 30);
                Canvas.SetTop(sideButtons[i], 10 + (46 * i));
                sideButtons[i].Click += new RoutedEventHandler(this.SideButton_Click);
                leftSideBar.Children.Add(sideButtons[i]);

            }

第一个被注释掉的区域是在我创建带有按钮而不是图像的按钮时,第二个是图像,它不起作用。 提前致谢。

这里有两个选择:

1.)代替使用Click事件(在Image上不存在),使用MouseDown可以。

2)使用带有自定义样式的按钮,而不是使用图像并重新使用它们。 然后,您可以处理按钮的单击。

就个人而言,我会使用后者,但实际上两者都可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM