如何通过一键点击事件隐藏或显示图像

时间:2014-01-30 12:15:29

标签: c# wpf xaml button wpf-controls

我正在使用代码添加按钮和图像元素。当我点击按钮时,我的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);
    }
}

2 个答案:

答案 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 

每次单击按钮时,它都会显示或不可见)