2014-04-14 3 views
0

으로 된 MouseEvent를 발생시키는 요소 이름을 찾기 :나는이 같은 XAML이 WPF

private void Func(object sender, MouseWheelEventArgs e) 
{ 
    // how can I get the element name that raised this event? (ie ModelWindowBorder) 
} 

답변

2

당신은 보낸 사람의 인수로 요소를 얻을 :

<Border x:Name="ModelWindowBorder" ClipToBounds="True" MouseWheel="Func"> 
</Border> 

그리고 뒤에 코드에서

private void Func(object sender, MouseWheelEventArgs e) 
{ 
    var element = (UIElement)sender; 
} 

이름을 얻으려면 UIElement 대신 FrameworkElement으로 전송하고에 액세스 할 수 있습니다.속성 :

private void Func(object sender, MouseWheelEventArgs e) 
{ 
    var element = (FrameworkElement)sender; 
    var name = element.Name; 
} 
+0

'x : Name'은 주변 Window 또는 UserControl 내의 C# 멤버 이름을 설정한다고 생각했습니다. 나는'.Name' 속성에 대해 몰랐습니다. 코드 숨김 내에서'ThisButton = new Button()'을하면, 자동적으로'ThisButton.Name == "ThisButton"'을 가질 수 있습니까? –

+0

@AdrianRatnapala 아니요, 명시 적으로 속성을 설정해야합니다. – Clemens

+0

@ 클레멘스 감사합니다. 이것은 매력처럼 작동했습니다. – Vahid

1

시도해보십시오.

private void Func(object sender, MouseWheelEventArgs e) 
{ 
    var name = (sender as Border).Name; 
}