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 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]ボタンをクリックして子ウィンドウを閉じると、このコードを使用して(今日)強調表示されたハイパーリンクボタンの色が変わります。-

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イベントの一部である上記のコードを変更して、イベントを発生させるハイパーリンクボタンに関係なく、イベント発生(子ウィンドウを開くもの)ハイパーリンクボタンの色を変更するにはどうすればよいですか?

4

1 に答える 1

0

さて、私はそれをやったと言うことができます。誰かが同様の問題を抱えている場合、これが私がしたことです。

  1. 5 月の Home.xaml.cs で、次のようなパブリック プロパティを追加しました。

    public HyperlinkBut​​ton dayHyperLink { get; 設定; }

  2. Click イベントに、このコードを追加しました:-

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

  3. rapport_Closing イベントに対して、if ステートメントを以下のコードに変更しました:-

    if (rapport.UsersValue == "Röd" && rapport.DialogResult == true) { dayHyperLink.Background = new SolidColorBrush(Colors.Red); } これは私を幸せな気持ちにさせました ;)

于 2012-05-29T19:53:49.760 に答える