加载我的WPF应用程序时,图像显示在中央。 如何处理图像外的鼠标点击。当用户点击图像外部时,它会隐藏。 我的代码在c#。
答案 0 :(得分:3)
您可以简单地将处理程序添加到顶级控件,例如。 Grid
,Window
等。在该处理程序中,您可以检查点击的控件是否为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;
将此代码写入任何控件,即TextBox
或Button
。
答案 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 图像存在并执行相同的操作