2012-05-28 39 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); 
    } 
} 
- :

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(); 
} 

当我附近单击OK按钮childwindows,是因为我使用这个代码做改变突出显示的hyperlinkbutton的颜色(今天天)

但是,如果我点击没有突出显示的任何其他超链接按钮,它仍然只会改变突出显示的超链接按钮的颜色。我知道这是因为我的rapport_Closed事件有:

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

如何更改上面的代码,这是我rapport_Closed事件的一部分,所以它改变了事件的发射颜色(即打开childwindow一)超链接按钮,无论哪个超链接按钮是引发事件的那个按钮?

+0

我会高兴地看到您的XAML代码。您可以跟踪变量中点击的链接,因此当窗户关闭时,您仍然可以访问该变量以更改其颜色。 – fenix2222

+0

主页面或子窗口的XAML代码? – DreamNet

+0

请任何人知道如何做我的上述问题? – DreamNet

回答

0

好吧,现在我可以说我已经做到了。如果任何人有类似的问题,这是我做的。

  1. 五月Home.xaml.cs,我添加了一个公共属性是这样的: -

    公共HyperlinkBut​​ton dayHyperLink {获得;组; }

  2. 点击事件我添加以下代码: -

    dayHyperLink =(HyperlinkBut​​ton)发送者;

  3. 向该rapport_Closing事件我改变了如果statment到代码如下: -

    如果(rapport.UsersValue == “杆” & & rapport.DialogResult == TRUE){ dayHyperLink.Background =新的SolidColorBrush(Colors.Red); } 这让我感到高兴;)