2012-04-22 4 views
0

Ok 이것은 문제입니다. 버튼이있는 기본 웹 사이트가 있습니다. 이러한 단추는 자바 스크립트를 통해 실행되고 코드는 C#으로 이동 한 다음 Silverlight gantt 컨트롤을 사용하여 다양한 작업을 수행합니다. 예를 들어전체 화면 Silverlight에서 javascript

내가 같이 가서 간트 제어를 확대하려는 경우 :

다음
<button id="zoomIn" onclick="SlZoomIn()">Zoom In</button> 

자바 스크립트 :

function SlZoomIn() { 
    var control = document.getElementById("SilverlightPlugIn"); 
    control.Content.SilverPlan.JsZoomIn(); 
} 

다음 C#으로 :

[ScriptableMember] 
     public void JsZoomIn() 
     { 

      try 
      { 
       gantt.ZoomBySteps(1); 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show("Zoom In does not work."); 
      } 
     } 

이를 모두 잘 작동하지만 이벤트를 필요로하는 Gantt로 작업하고 싶을 때 이것이 문제입니다. 예를 들어, 내 Gantt 컨트롤을 인쇄하거나 전체 화면으로 표시하려고합니다. 어떻게해야합니까? 이것에 대한

C#에서

코드는 다음과 같습니다

private void fullScreen(object sender, RoutedEventArgs e) 
     { 
      Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen; 
     } 

하지만 제가 자바 스크립트에서 어떻게해야합니까이 방법을 실행하는 데? 사용자가 버튼 전체 화면을 클릭하면?

답변

0

Silverlight 플러그 인이 전체 화면 모드, 인쇄 및 파일 대화 상자를 포함한 여러 가지 보안 제한을 적용한다는 점을 제외하고는이 코드를 JavaScript와 비교하여 이전 예제와 비교할 때 차이가 없습니다. 즉, 사용자가 클릭하거나 입력하여 이러한 작업을 시작해야합니다. 설명했다 here at MSDN.

따라서 사용자가 Silverlight 플러그인 외부의 버튼을 눌러도 자바 스크립트에서이를 수행 할 수 없습니다. 사용자는 Silverlight 플러그인에서 무언가를 클릭해야합니다. 예를 들어, C# 코드를 작성하고 직접 조치를 취하십시오.

전체 화면의 경우 HTML/JavaScript 콘텐츠를 Silverlight와 믹싱하는 경우 Silverlight 전체 화면이 전혀 표시되지 않을 가능성이 높습니다. Silverlight 콘텐츠는 전체 화면으로 표시되며, HTML 내용은 보이지 않습니다. 또한 키보드 입력을 사용할 수 없습니다 (대부분). HTML 페이지 내에서 Silverlight 객체 크기를 조정하는 것이 좋습니다 (브라우저 윈도우 최대화와 함께 가능할 수도 있음).

+0

감사합니다. html 전체 화면을 가질 수 없다는 것을 알고 있습니다. 이것은 단지 데모이기 때문에 여기에 문제가되지 않습니다. 앞으로 다른 곳으로 통합 될 것입니다. "인쇄"또는 "내보내기"(파일 저장 대화 상자)는 어떻습니까? 이 작업을 이와 같이 할 수 있습니까, 아니면 Silverlight 구성 요소에서 수행해야합니까? 나는 보안 제한이 있다는 것을 알고 있지만, 내가 무슨 뜻인지 안다면 묻는 것을 해가되지는 않는다. – Some1

+1

다시 파일 저장 대화 상자에 대해서도 동일한 제한이 적용된다. 파일을 인쇄하고 여는 경우 자바 스크립트에서 어느 정도까지 이것을 할 수 있습니다 (SL을 전혀 사용하지 않고 SL에 데이터를 전달하는 것처럼).하지만 꽤 좋은 결과는 아니지만 큰 결과가 있습니다. 그리고 어쨌든 JS에서 파일을 저장할 수 있는지 확신하지 못합니다. –

+0

감사합니다! 나는 SL 컨트롤에 버튼을 놓을 것이고 괜찮을 것이다. – Some1