2012-05-28 2 views
0

31 개의 하이퍼 링크 버튼이있는 SilverLight 프로젝트를 생각해보십시오. 그 달의 날을 나타냅니다. 오늘 코드를 나타내는 하이퍼 링크 버튼을 강조 표시하기 위해이 코드를 사용하고 있습니다.이벤트를 발생시킨 버튼을 강조 표시

var daynumberHyperButton = this.FindName("Day" + DateTime.Today.Day) as HyperlinkButton; 

//Highlighting the day of the month 
if (daynumberHyperButton != null) 
{ 
    daynumberHyperButton.Background = new SolidColorBrush(Colors.Gray); 
} 

강조 표시된 하이퍼 링크 버튼을 클릭하면 하위 보고서가 열려 보고서가 작성됩니다.

private void rapport_Closed(object sender, EventArgs e) 
{ 
    ReportWindow rapport = (ReportWindow)sender; 
    var daynumberHyperButton = this.FindName("Day" + DateTime.Today.Day) as HyperlinkButton; 
    if (rapport.UsersValue == "Röd" && rapport.DialogResult==true) 
    { 
     daynumberHyperButton.Background = new SolidColorBrush(Colors.Red); 
    } 
    else if (rapport.UsersValue == "Gul") 
    { 
     daynumberHyperButton.Background = new SolidColorBrush(Colors.Yellow); 
    } 
    else 
    { 
     daynumberHyperButton.Background = new SolidColorBrush(Colors.Green); 
    } 
} 
- : 나는 OK (확인) 버튼을 클릭하여 childwindows을 닫을 때 나는 그렇게이 코드를 사용하고 있기 때문에

private void dayHyperLink_Click(object sender, RoutedEventArgs e) 
{ 
    //This will initite and show the report window 
    ReportWindow rapport = new ReportWindow(); 
    rapport.Closed += new EventHandler(rapport_Closed); 
    rapport.Show(); 
} 

, 그것은 강조했다 hyperlinkbutton의 색상 (오늘 하루) 변경

그러나 하이라이트 된 다른 하이퍼 링크 버튼을 클릭해도 하이라이트 된 하이퍼 링크 버튼의 색상 만 변경됩니다.

var daynumberHyperButton = this.FindName("Day" + DateTime.Today.Day) as HyperlinkButton; 

이 발사 이벤트의 색상합니다 (childwindow을 여는 일)을 변경하도록 내가, 내 rapport_Closed 이벤트의 일부입니다 위의 코드를 변경할 수 있습니다 방법 : 내 rapport_Closed 이벤트가 있기 때문에 나는 이것을 알고 hyperlinkbutton, 어떤 hyperlinkbutton이 이벤트를 발생시키는 이벤트와 상관없이?

+0

나는 당신의 XAML 코드를보고 좋은 것입니다. 변수에서 클릭 된 링크를 추적 할 수 있으므로 창이 닫히면 해당 변수에 액세스하여 색상을 변경할 수 있습니다. – fenix2222

+0

기본 페이지 또는 하위 창에 대한 XAML 코드? – DreamNet

+0

위 질문을 수행하는 방법을 아는 분 누구라도 제발요? – DreamNet

답변

0

이제 확인 했어. 비슷한 문제가있는 사람은 내가 한 일입니다.

  1. 있음이 Home.xaml.cs 할 수있다, 나는 다음과 같은 공용 속성을 추가 : -

    공공 HyperlinkButton dayHyperLink {얻을; 세트; } Click 이벤트에

  2. 는이 코드를 추가 : -

    dayHyperLink = (HyperlinkButton) 보낸 사람; rapport_Closing 이벤트

  3. 제가 아래의 코드로 변경 한 Statment 경우 -

    (참 rapport.UsersValue == "로드"& & rapport.DialogResult ==) 경우 dayHyperLink.Background = { 새로운 SolidColorBrush (Colors.Red); 이 날 행복하게 만들어 } )

관련 문제