내가 전에 매우 비슷한 질문을했다,하지만 난 어떤 가능한 응답을하지 않았다. 나는 누군가가 저를 도울 수 있기를 바라고 있습니다.
Windows Form 앱으로 프로그래밍 된 기존 트레이 응용 프로그램이 있습니다. WPF로 프로그래밍 된 기존 설정 양식이 있습니다.
트레이 응용 프로그램은 다음을 수행 할 수 있어야합니다. * 한 번에 하나의 인스턴스 만 열어서 설정 응용 프로그램을 n 번 엽니 다. * 사용자가 설정 응용 프로그램을 닫으면 알림을받습니다.
설정 App은 ResourceDictionary를 사용합니다. 이는 App.xaml에서 시작해야한다는 것을 의미합니다.
설정 창을 한 번 열어 다음 코드를 사용하여 종료 할 때 트레이에 알릴 수는 있지만 다시 열 수는 없습니다.
if (gui == null)
{
//shell = new mainWindow();
//shell.CloseEvent += settings_FormClosed;
gui = new App();
//gui.ShutdownMode = ShutdownMode.OnExplicitShutdown;
gui.MainWindow = shell;
gui.InitializeComponent();
//gui.Run();
gui.Exit += new System.Windows.ExitEventHandler(settings_FormClosed);
IsUIOpen = true;
}
위 줄의 주석을 제거하면 닫기 이벤트를 가로 채고 공개 설정을 숨김으로 설정할 수 있습니다. 다음에 사용자가 설정을 선택하면이를 다시 표시로 설정할 수 있습니다. 그러나 설정을 처음 열면 Exit 이벤트가 시작되지 않고 셸에서 모든 ReferenceDictionary를 가져 오지 못하거나 액세스하지 못하고 있으므로 창이 제대로 표시되지 않습니다.
응용 프로그램에서 WPF를 실행하고 MainWindow에 액세스 할 수있는 방법이 있습니까? (종종 null 인 것으로 보이고 자체 창 유형이 아닙니다) 사용자 정의 수신기를 mainWindow에 추가 할 수 있습니까?
다른 방법으로 정적 응용 프로그램을 처리 할 수있는 방법이 있으므로 다음에 사용자가 설정을 클릭 할 때 다시 인스턴스화 할 수 있습니다.
WP 폼을 Win Forms에서 훌륭하게 사용하려면 몇 가지 방법이 있어야한다는 것을 알고 있습니다. 도와 주신 모든 분들께 감사드립니다. 이것은 저에게 두통을주었습니다.
가 감사를; 이것은 훌륭한 대답이었다. 코드를 차단하고 싶지는 않지만 별도의 스레드에 추가하여이를 처리 할 수 있습니다. 나는 하나의 질문을 가지고 있습니다 : 절대 경로를 제공하지 않고 이것을 할 수있는 방법이 있습니까? WPF는 내 솔루션의 프로젝트입니다. 그 대신 참조 할 수있는 방법이 있습니까? 다시 한 번 귀하의 답변에 감사드립니다. 이것은 며칠 동안 나를 괴롭혔다! – Tim
전체 경로를 제공해야한다고 생각합니다. 그러나 솔루션의 일부인 경우 Assembly 객체가 실행 경로를 가져 와서 거기에서 설정 앱으로 빌드 할 수 있습니다. 위의 답변을 형식이 표시되도록 업데이트되었습니다. – Josh
당신은 최고입니다. 나는 너의 대답을 하나 이상 부딪 칠 수 있었으면 좋겠다. 정말 고맙습니다! – Tim