<Image>
이있는 WPF 창이 있는데이 노드의 자식 FrameworkElement는 <Rectangle>
입니다. 원하는 동작은 이미지의 주위를 움직일 수 있도록 사각형의 중간 마우스 단추와 이미지의 왼쪽/오른쪽 MouseDown을 또는 <Image>
에 지정하여 직사각형의 크기를 줄이거 나 늘릴 수 있습니다. 나는 을 <Image>
주변으로 끌고, 사각형에 의해 처리되는 왼쪽/오른쪽 클릭을 가지고 있습니다. Left/Right MouseDown을 <Image>
으로 처리하려면 어떻게해야합니까? 그러면 자식 및 부모 사각형의 크기를 변경하기위한 코드를 복제 할 필요가 없습니까?C# WPF에서 부모에게 자식의 MouseDown을 버블 링하는 방법은 무엇입니까?
0
A
답변
0
여기 유사한 아래 수행 할 수 있습니다 뒤에
<Grid Background="Transparent" StackPanel.MouseDown="StackPanel_MouseDown">
<StackPanel Margin="70" Background="DarkGray" MouseDown="StackPanel_MouseDown">
<TextBlock x:Name="XTextBlock"></TextBlock>
</StackPanel>
</Grid>
코드 :이 문제를 해결합니다
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void StackPanel_MouseDown(object sender, MouseButtonEventArgs e)
{
if (sender.GetType().Name.Equals("StackPanel"))
{
XTextBlock.Text = "I am direct raised from StackPanel.";
}
else //sender.GetType().Name.Equals("Grid")
{
XTextBlock.Text += "I am bubble raised from Grid.";
}
}
}
희망.
0
당신은 다음과 PreviewMouseDown
를 사용하여 라우트 된 이벤트 터널링 동작을 이용할 수있다 : 뒤에
<Grid Background="Transparent" PreviewMouseDown="Grid_PreviewMouseDown">
<StackPanel Margin="70" Background="DarkGray" Grid.PreviewMouseDown="Grid_PreviewMouseDown">
<TextBlock x:Name="XTextBlock"></TextBlock>
</StackPanel>
</Grid>
코드 :이 의지 할 수
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (sender.GetType().Name.Equals("StackPanel"))
{
XTextBlock.Text += ", I am tunneled raised from StackPanel.";
}
else //sender.GetType().Name.Equals("Grid")
{
XTextBlock.Text = "I am direct raised from Grid.";
}
}
}
희망을. 코딩 유지 :)
0
어떤 버튼이 눌러 졌는지 확인하려면 MouseButtonEventArgs를 사용할 수 있습니다. 예를
if(e.ChangedButton == MouseButton.Left)
{
//do something
}
0
위해 Thumb 제어를 살펴 보자. 당신은 쉽게 그렇게 9 엄지 손가락의 그리드를 설정할 수 있습니다
+--+-----------+--+
| | | |
+--+-----------+--+
| | | |
| | | |
| | | |
| | | |
| | | |
+--+-----------+--+
| | | |
+--+-----------+--+
각 엄지 손가락에 적절한 커서를 할당하고 그 위치에 따라 엄지 손가락 '드래그 이벤트를 처리합니다. 마우스 다운/업/이벤트 직접 처리보다 훨씬 강력합니다.
관련 문제
- 1. 거품을 버블 링하는 방법은 무엇입니까?
- 2. Java에서 arraylist를 버블 링하는 방법은 무엇입니까?
- 3. Silverlight usercontrols에서 이벤트를 버블 링하는 방법은 무엇입니까?
- 4. 오류 조건을 버블 링하는 파이썬 방법은 무엇입니까
- 5. 컨트롤에서 폼에 키 이벤트를 버블 링하는 방법은 무엇입니까?
- 6. AS3에서 이벤트를 버블 링하는 데 도움이 필요합니다.
- 7. 몇 가지 방법으로 오류 객체를 버블 링하는 방법은 무엇입니까?
- 8. GWT에서 버블 링하는 이벤트를 중지하십시오.
- 9. Flex 4 버블 링하는 맞춤 이벤트
- 10. window.document에 사용자 정의 jQuery 이벤트를 버블 링하는 방법은 무엇입니까?
- 11. 내장 된 Jetty에서 DispatcherServlet 초기화 오류를 버블 링하는 방법은 무엇입니까?
- 12. ObjectiveC 및 MacOS 용 Cocoa에서 반원을 버블 링하는 방법은 무엇입니까?
- 13. 재귀 알고리즘을 통해 "불가능한"값을 버블 링하는 방법은 무엇입니까?
- 14. 이벤트를 여러 수준 위로 버블 링하는 방법은 무엇입니까?
- 15. Dojo 스 와이프 제스처가 버블 링하는 것을 방지하는 방법은 무엇입니까?
- 16. angularjs가 httpinterceptor로 버블 링하는 것을 방지합니다.
- 17. 전체 C++ 빌드를 프로파일 링하는 방법은 무엇입니까?
- 18. 자식 중 하나에서 값을 버블 링하는 사용자 정의 컨트롤에서 종속성 속성을 정의하는 방법은 무엇입니까?
- 19. TextBox가 아닌 컨트롤에서 MouseDown을 감지하는 방법은 무엇입니까?
- 20. QEMU로 프로파일 링하는 방법은 무엇입니까?
- 21. 하위 컨트롤에서 상위 컨트롤로 유효성 검사 오류를 버블 링하는 방법
- 22. 부모에게 상대적으로보기를 배치하는 방법은 무엇입니까?
- 23. 예외를 스택 맨 위로 버블 링하는 것이 좋습니까?
- 24. javascript try/catch 블록을 덮어 쓰거나 버블 링하는 방법
- 25. 중첩 된 컬렉션 변경 이벤트를 버블 링하는 방법
- 26. 내 Comparator가 위아래로 버블 링하는 동안 예외를 throw하면 PriorityQueue는 어떻게됩니까?
- 27. 사용자 정의 컨트롤에서 이벤트가 포함 된 창 위로 이벤트를 버블 링하는 방법은 무엇입니까?
- 28. 부모와 자식의 벡터 C++
- 29. 부모에게 주어진 C#의 개체 그래프에 자식을 추가하는 방법은 무엇입니까?
- 30. 장고에서보기를 프로파일 링하는 가장 좋은 방법은 무엇입니까?
내 경우에 약간 다른 점은 어떤 마우스 버튼을 눌렀는지에 따라 자식에서 MouseDown을 선택적으로 처리해야한다는 것입니다. 이 문제를 처리 할 수있는 방법이 있습니까? – user3583535