繁体   English   中英

C#WPF文本框单击事件

[英]C# WPF Textbox click Event

我创建了一个Stackpanel,并放置了一些控件,其中有1个是程序设计的文本框。 我如何创建一个事件,当我单击文本框时删除堆栈面板和其中的所有内容? 这是我的代码...

        System.Windows.Controls.StackPanel Defesa = new StackPanel();
        Defesa.Height = 120;
        Defesa.Width = 140;
        Panel_DE.Children.Add(Defesa);
        Defesa.Background = new 

        SolidColorBrush((Color)ColorConverter.
        ConvertFromString("#FF000000"));
        Defesa.Margin = new Thickness(20, 0, 0, 0);
        Ellipse Foto = new Ellipse();
        Foto.Height = 80;
        Foto.Width = 80;
        Foto.StrokeThickness = 2;
        SolidColorBrush borda = new SolidColorBrush();
        borda.Color = Colors.White; ;
        Foto.Stroke = borda;
        Defesa.Children.Add(Foto);
        ImageBrush camera = new ImageBrush();
        camera.ImageSource = new BitmapImage(new 
        Uri(@"C:\Users\Vitor\documents\visual studio 2013\Projects\Manager 
        Treinador\Manager Treinador\Icons\photo-camera w.png"));
        Foto.Fill = camera;
        System.Windows.Controls.TextBlock Nome_def = new TextBlock();
        Nome_def.Text = def_name;
        Nome_def.Foreground = new 
        SolidColorBrush((Color)ColorConverter.ConvertFromString
        ("#FFF9F4F4"));
        Nome_def.HorizontalAlignment = HorizontalAlignment.Center;
        Defesa.Children.Add(Nome_def);
        System.Windows.Controls.StackPanel Panel = new StackPanel();
        Panel.Orientation = Orientation.Horizontal;
        Defesa.Children.Add(Panel);
        System.Windows.Controls.TextBlock But_Delet = new TextBlock();
        But_Delet.Text = "X";
        But_Delet.FontWeight = FontWeights.Bold;
        But_Delet.Foreground = new 
        SolidColorBrush((Color)ColorConverter.ConvertFromString
        ("#FFF90707"));
        Panel.Children.Add(But_Delet);
        But_Delet.HorizontalAlignment = HorizontalAlignment.Left;
        But_Delet.Cursor = Cursors.Hand;

But_Delete是我要删除所有内容的文本框...

谢谢

由于TextBlock没有click事件,因此您需要使用OnPreviewMouseDown事件对其进行模拟。 去做这个:

将此添加到代码末尾:

But_Delet.PreviewMouseDown += ButDeletOnPreviewMouseDown;

然后添加此事件处理程序:

private void ButDeletOnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    Panel_DE.Children.Remove(Defesa);
}

但是,如果有机会需要还原这些控件,则最好使用此事件处理程序将其隐藏:

private void ButDeletOnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    Defesa.Visibility = Visibility.Hidden;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM