私はWPFで5ダイスのゲームを開発しています。私はサイコロの設計をしたユーザーコントロールを持っています。その後、私のmainWindowでこのusercontrolを5回追加しました(これは私の言い訳です)。5diceのゲームのサイコロの値を別のウィンドウから取得する
私はScoreCheckという名前のクラスを持っています。そのクラスでは、サイコロの値を得るためのコードを書いています(1,2,3,4,5,6)。
問題は、私は私のユーザーコントロールのサイコロにこのような何かを行うことができるということです。
int worp = rand.Next(1, 7);
switch (worp)
{
case 1:
dso1.Fill = new SolidColorBrush(steenkleur);
dso2.Fill = new SolidColorBrush(steenkleur);
dso3.Fill = new SolidColorBrush(steenkleur);
dso4.Fill = new SolidColorBrush(oogkleur);
dso5.Fill = new SolidColorBrush(steenkleur);
dso6.Fill = new SolidColorBrush(steenkleur);
dso7.Fill = new SolidColorBrush(steenkleur);
break;
case 2:
dso1.Fill = new SolidColorBrush(steenkleur);
dso2.Fill = new SolidColorBrush(steenkleur);
dso3.Fill = new SolidColorBrush(oogkleur);
dso4.Fill = new SolidColorBrush(steenkleur);
dso5.Fill = new SolidColorBrush(oogkleur);
dso6.Fill = new SolidColorBrush(steenkleur);
dso7.Fill = new SolidColorBrush(steenkleur);
break;
case 3:
dso1.Fill = new SolidColorBrush(steenkleur);
dso2.Fill = new SolidColorBrush(steenkleur);
dso3.Fill = new SolidColorBrush(oogkleur);
dso4.Fill = new SolidColorBrush(oogkleur);
dso5.Fill = new SolidColorBrush(oogkleur);
dso6.Fill = new SolidColorBrush(steenkleur);
dso7.Fill = new SolidColorBrush(steenkleur);
break;
case 4:
dso1.Fill = new SolidColorBrush(oogkleur);
dso2.Fill = new SolidColorBrush(steenkleur);
dso3.Fill = new SolidColorBrush(oogkleur);
dso4.Fill = new SolidColorBrush(steenkleur);
dso5.Fill = new SolidColorBrush(oogkleur);
dso6.Fill = new SolidColorBrush(steenkleur);
dso7.Fill = new SolidColorBrush(oogkleur);
break;
case 5:
dso1.Fill = new SolidColorBrush(oogkleur);
dso2.Fill = new SolidColorBrush(steenkleur);
dso3.Fill = new SolidColorBrush(oogkleur);
dso4.Fill = new SolidColorBrush(oogkleur);
dso5.Fill = new SolidColorBrush(oogkleur);
dso6.Fill = new SolidColorBrush(steenkleur);
dso7.Fill = new SolidColorBrush(oogkleur);
break;
case 6:
dso1.Fill = new SolidColorBrush(oogkleur);
dso2.Fill = new SolidColorBrush(oogkleur);
dso3.Fill = new SolidColorBrush(oogkleur);
dso4.Fill = new SolidColorBrush(steenkleur);
dso5.Fill = new SolidColorBrush(oogkleur);
dso6.Fill = new SolidColorBrush(oogkleur);
dso7.Fill = new SolidColorBrush(oogkleur);
break;
}
Console.WriteLine(worp);
だから今、私はすべてのサイコロの値を取得します。このようなもの:2 6 4 1 5 1.
しかし、私はこれを望んでいません。別の窓にサイコロでサイコロをして、スコアを確認することができます。だから私のメインウインドウで私はサイコロの名前をつけた:dice1、dice2、dice3、dice4、dice5。だから私はScoreCheckでこのようなことをしたい。
var mwaanspreken = Application.Current.Windows.OfType<MainWindow>().SingleOrDefault();
Console.WriteLine(mwaanspreken.steen1.worp);
しかし、その後、私の出力は、だから、誰もが別のウィンドウから、私のサイコロの値を取得する方法を知っているん常に0
のですか?別の方法としては、アプリケーションの設定を使用して試すことができます
var mwaanspreken = ((MainWindow)Application.Current.MainWindow);
Console.WriteLine(mwaanspreken.steen1.worp);
:
まだNull @Dark Templar –
ええとアプリケーション設定の使用はどうですか? –
アプリケーションの設定はどういう意味ですか? @Dark Templar –