我正在制作一个项目,在Visual Studio上用C#创建整个项目(包括模板)。为什么我无法从我的事件处理程序中访问变量?
我已经制作了模板并刚刚开始在事件上工作,我想为创建的Canvas创建一个事件MouseLeftButtonDown,该事件将记录鼠标位置。
这是我的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private char tester;
private Point down1;
private Point up1;
private void Grid1_Loaded(object sender, RoutedEventArgs e)
{
RowDefinition row1 = new RowDefinition();
RowDefinition row2 = new RowDefinition();
row1.Height = new GridLength(40);
row2.Height = new GridLength(1, GridUnitType.Star);
Grid1.RowDefinitions.Add(row1);
Grid1.RowDefinitions.Add(row2);
Canvas canvas1 = new Canvas();
canvas1.Background = new SolidColorBrush(Colors.Beige);
Grid.SetRow(canvas1, 1);
Grid1.Children.Add(canvas1);
canvas1.MouseLeftButtonDown += new RoutedEventHandler(canvas1_MouseLeftButtonDown);
canvas1.MouseLeftButtonUp += new RoutedEventHandler(canvas1_MouseLeftButtonUp);
Button btnRect = new Button();
btnRect.Content = "Rectangulo";
btnRect.Margin = new Thickness(5, 5, 5, 5);
btnRect.HorizontalAlignment = HorizontalAlignment.Left;
btnRect.VerticalAlignment = VerticalAlignment.Center;
Grid.SetRow(btnRect, 0);
Grid1.Children.Add(btnRect);
//btnRect.Click += new RoutedEventHandler(btnRect_Click);
Button btnEllip = new Button();
btnEllip.Content = "Ellipse";
btnEllip.Margin = new Thickness(75, 5, 5, 5);
btnEllip.HorizontalAlignment = HorizontalAlignment.Left;
btnEllip.VerticalAlignment = VerticalAlignment.Center;
Grid.SetRow(btnEllip, 0);
Grid1.Children.Add(btnEllip);
//btnEllip.Click += new RoutedEventHandler(btnEllip_Click);
}
这是我的事件:
private void canvas1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
down1 = e.GetPosition(canvas1);
}
}
}
我试图做down1 = e.GetPosition(canvas1);
但我对(canvas1)得到一个错误;
我做了一个类似的项目,而无需编写代码模板,用没有任何问题“的名字canvas1不会在当前的背景下存在” ..
神奇。令人惊讶的是我为这些事情而堕落。谢谢! – joao