[英]Creating Images as buttons in code in C# WPF
我想在C#WPF中将图像创建为按钮中的按钮(不是带有BG图像的按钮,而是实际图像)。 我在该站点上阅读过使用PictureBox作为图像,并且发现WPF等效于Image。 问题是,虽然我发现PictureBox具有.Click可以设置,但Image没有。 我想做的两件事是:
我想念的东西在我面前吗?
这是我创建按钮的循环:
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.