在wpf中单击图像外部时隐藏图像

时间:2013-11-27 09:34:12

标签: c# wpf image hide

加载我的WPF应用程序时,图像显示在中央。 如何处理图像外的鼠标点击。当用户点击图像外部时,它会隐藏。 我的代码在c#。

5 个答案:

答案 0 :(得分:3)

您可以简单地将处理程序添加到顶级控件,例如。 GridWindow等。在该处理程序中,您可以检查点击的控件是否为Image,如果不是,则可以隐藏它:

XAML:

<Grid PreviewMouseLeftButtonDown="Grid_PreviewMouseLeftButtonDown">
    ...
    <Image Name="TheImage" Source="/WpfApplication2;component/Images/Add_16.png" />
    ...
</Grid>

背后的代码:

private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if (e.OriginalSource != TheImage)
    {
        TheImage.Visibility = Visibility.Hidden;
    }
}

虽然这符合您的要求,但应注意隐藏后,Image将不再是“可点击”。

答案 1 :(得分:1)

只需将代码MyImage.Visibility = System.Windows.Visibility.Hidden;放入您想要捕获的任何事件中。

例如:

private void MyButton_Click_1(object sender, RoutedEventArgs e)
{
    MyImage.Visibility = System.Windows.Visibility.Hidden;
}


private void MyTextbox_PreviewMouseDown_1(object sender, MouseButtonEventArgs e)
    {
        MyImage.Visibility = System.Windows.Visibility.Hidden;
    }

private void MyWindow_MouseDown(object sender, MouseButtonEventArgs e)
    {
        MyImage.Visibility = System.Windows.Visibility.Hidden;
    }

其中MyImage是图片的名称,MyTextbox是文本框的名称,MyButton是Button的名称,MyWindow是主窗口的名称

答案 2 :(得分:0)

你可以简单地写

YourImageName.Visibility = Visibility.Hidden;

将此代码写入任何控件,即TextBoxButton

答案 3 :(得分:0)

首先单击表单以选择它。然后转到事件的部分(在属性部分附近)并双击click事件以在单击表单时进行函数调用。在代码中将发件人对象与IsEqual(obj)方法进行比较,并看到发件人是同一个图像,或者不是。如果不隐藏它。 :)

答案 4 :(得分:0)

您可以处理应用程序当前窗口的单击事件,在该事件中,您可以检查鼠标位置是在该图像内还是在该图像之外,基于此,您可以设置您喜欢的图像可见性条件。 / p>

代码示例示例:

//registering event
Application.Curent.mainWindow.MouseRightButtonDown += MainWindow_MouseRightButtonDown;

//event implementation
void MouseRightButtonDown(object sender , MouseButtonEventArgs e)
{
//here you can check the ui element for image control using sender

//below will let you know the position of Click 
e.GetPosition(// pass the ui element here)
}
  

注意:上面显示的代码是应用级点击处理。如果你   不想在应用程序级别,你可以采取其中的父xaml   图像存在并执行相同的操作