大家,我在畫布上有一個折線圖。我在每個資料點上放置了一個矩形并添加了一個 MouseEnter 事件。
private void SetDataPointLabels(Point pt)
{
Rectangle rec = new Rectangle();
rec.Stroke = Brushes.Red;
rec.StrokeThickness = 1;
rec.Width = 5;
rec.Height = 5;
rec.MouseEnter = Rec_MouseEnter;
Canvas.SetTop(rec, pt.Y - 2.5);
Canvas.SetLeft(rec, pt.X - 2.5);
ChartCanvas.Children.Add(rec);
}
我現在需要事件方法中矩形的 y 位置。
private void Rec_MouseEnter(object sender, MouseEventArgs e)
{
Console.WriteLine(sender.GetHashCode());
}
在發件人中,我在 VisualOffset 下找到了 Y 位置。
不幸的是,您可能只能通過哈希碼 (sender.GetHashCode()) 獲取它,而我不知道如何。誰能幫我?謝謝克里斯
uj5u.com熱心網友回復:
該sender引數包含對 Rectangle 實體的參考,因此可以轉換為Rectangle型別:
private void Rec_MouseEnter(object sender, MouseEventArgs e)
{
var rec = (Rectangle)sender;
var y = Canvas.GetTop(rec);
Debug.WriteLine(y);
}
或者UIElement如果您想將事件處理程式也用于其他元素型別,則只需轉換為:
var y = Canvas.GetTop((UIElement)sender);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521342.html
標籤:C#wpf哈希码
