考虑一个具有 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 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();
}
当我通过单击“确定”按钮关闭子窗口时,它会更改突出显示(今天)的超链接按钮的颜色,因为我正在使用此代码来执行此操作:-
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);
}
}
但是,如果我单击任何其他未突出显示的超链接按钮,它仍然只会更改突出显示的超链接按钮的颜色。我知道这一点是因为我的rapport_Closed
活动有:
var daynumberHyperButton = this.FindName("Day" + DateTime.Today.Day) as HyperlinkButton;
如何更改上面的代码,这是我的 rapport_Closed 事件的一部分,以便它更改事件触发(打开子窗口的那个)超链接按钮的颜色,无论哪个超链接按钮是触发事件的那个?