2016-08-19 3 views
1

끌어 놓기 요소에 대한 CS 파일이 있습니다. OnManipulationCompleted 메서드 내에서 3 개의 단추가있는 다른 WPF 페이지에서 3 단추 클릭을 시작/트리거하고 싶습니다.다른 cs 파일의 메서드에서 다른 페이지의 버튼 클릭을 시작하는 방법

namespace KinectDemos 
{ 
    public class DragDropElementController : IKinectManipulatableController 
    { 
     private ManipulatableModel _inputModel; 
     private KinectRegion _kinectRegion; 
     private DragDropElement _dragDropElement; 
     private bool _disposedValue; 

     public DragDropElementController(IInputModel inputModel, KinectRegion kinectRegion) 
     { 
      _inputModel = inputModel as ManipulatableModel; 
      _kinectRegion = kinectRegion; 
      _dragDropElement = _inputModel.Element as DragDropElement; 

      _inputModel.ManipulationStarted += OnManipulationStarted; 
      _inputModel.ManipulationUpdated += OnManipulationUpdated; 
      _inputModel.ManipulationCompleted += OnManipulationCompleted; 
     } 

     private void OnManipulationCompleted(object sender, 
      KinectManipulationCompletedEventArgs kinectManipulationCompletedEventArgs) 
     {**HERE I WOULD LIKE TO INITIATE THE BUTTON CLICKS** 
     } 

다른 Wpf 페이지에는 3 개의 버튼 기능이 있습니다. 각 버튼을 놓으면 다른 페이지로 이동합니다.

Public partial class Beauty : Usercontrol 
{ 
    Public void Tip_Click (object sender, RoutedEventArgs e) 
    { 
    Afterdrop page1 = new Afterdrop 
    this.content = page1; 
    } 

    Public void Tricks_Click (object sender, RoutedEventArgs e) 
    { 
    Afterdrop2 page2 = new Afterdrop2 
    this.content = page2; 
    } 

    Public void Invent_Click (object sender, RoutedEventArgs e) 
    { 
    Afterdrop3 page3 = new Afterdrop3 
    this.content = page3; 
    } 


} 

은 어떻게 할 것인가? 당신은 당신이 이벤트를 트리거 할 페이지의 인스턴스를 가질 필요가

답변

1

도와주세요. 해당 페이지가 존재하면 응용 프로그램 아키텍처를 기반으로 인스턴스를 가져올 수 있습니다. 그렇지 않으면 객체를 인스턴스화하지 않고 비 정적 멤버를 호출 할 수 없습니다.

일단 해당 페이지 인스턴스를 얻으면 해당 이벤트 핸들러를 메소드로 호출하십시오. 예를 들어 해당 인스턴스의 이름이 targetPage 인 경우

targetPage.Tip_Click(null, new EventArgs()); 
+0

감사합니다. Tip_Click을 호출 할 수 있습니다. 그러나 드롭이 완료된 후 자동으로 클릭을 트리거하지는 않습니다. 우리는 여전히 버튼을 클릭해야합니다. targetPage.Tip_Click (null, new EventArgs())에 중단 점을 넣습니다. Tip_CLick에 들어가는 지 확인하십시오. 입력되지만 기능을 수행하지 않습니다. PerformCLick() 나를 위해 작동하지 않습니다. 클릭 작업을 자동으로 수행하는 방법. –

+0

죄송합니다 PerformClick 다른 네임 스페이스의 단추 클래스에있었습니다. U ..에 대한 작업을 실 거예요 대답을 편집합니다 ..하지만 실제 단추를 클릭하지 않고 이벤트 처리기의 실행은 당신의 필요 충분하지 않을까? 무엇이 그리울까요? –

+0

Ok .. 나는 이것을 시도했다 ... 잘하면 그것은 버튼을 완료해야합니다. 버튼 .RaiseEvent (새로운 RoutedEventArgs (Button.ClickEvent)); '드롭이 완료된 후 세 버튼에이 메서드를 호출하십시오. –