我正在使用代码添加按钮和图像元素。当我点击按钮时,我的wpf应用程序能够显示存储在我的项目中的图像。如果再次单击该按钮,我想隐藏显示的图像。如果我的按钮只有一个事件处理程序,我将如何实现这一目标?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
grid_parent.RowDefinitions.Add(new RowDefinition { Height = new GridLength(150, GridUnitType.Pixel) });
grid_parent.RowDefinitions.Add(new RowDefinition { Height = new GridLength(150, GridUnitType.Auto)});
Button btn_submit = new Button { Content = "Submit" };
btn_submit.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
Grid.SetRow(btn_submit, 1);
btn_submit.Click += btn_submit_Click;
grid_parent.Children.Add(btn_submit);
}
void btn_submit_Click(object sender, RoutedEventArgs e)
{
image = new Image { Source = new BitmapImage(new Uri(@"/AddControlsThroughClass;component/images/julie.jpg", UriKind.Relative)) };
image.Stretch = Stretch.Uniform;
Grid.SetRow(image, 0);
grid_parent.Children.Add(image);
}
}
答案 0 :(得分:1)
Button
控件没有关于何时单击它的概念。与使用常规Button
不同,使用ToggleButton
更有意义, 知道何时点击它。 ToggleButton
类具有IsChecked
属性,在第一次点击后将设置为true
,并在再次点击后返回false
。因此,使用此ToggleButton
属性有一个非常简单的解决方案:
image.Visibility = toggleButton.IsChecked ? Visiblity.Visible : Visiblity.Collapsed;
答案 1 :(得分:0)
您可以通过按钮执行此操作,但也可以使用keypreview属性
以下是使用keypreview的代码
private void HideShow(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S)
pictureBox1.Visible = true;
else if (e.KeyCode == Keys.H)
pictureBox1.Visible = false;
}
从表单的属性添加到keydown属性,您可以隐藏并显示您的图片
或者您可以通过按钮
来完成通过此代码
pictureBox1.Visible = !pictureBox1.Visible
每次单击按钮时,它都会显示或不可见)