これは私が使用しているコードですが、ウィンドウ形式で行った方法で実装できる理由がわかりません。
Button[] btnMonday = new Button[20];
string[] timeslot = { "08:00 AM", "08:30 AM", "09:00 AM", "09:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "01:00 PM", "01:30 PM", "02:00 PM", "02:30 PM", "03:00 PM", "03:30 PM", "04:00 PM", "04:30 PM", "05:00 PM", "05:30 PM" };
#region Monday
for (int i = 0; i < 20; i++)
{
btnMonday[i].SetValue(Height, 38);
btnMonday[i].SetValue(Width, 256);
btnMonday[i].SetValue(Content, timeslot[i]);
btnMonday[i].SetValue(Background, 0xFF, 0xB1, 0xB1, 0xB1);
// Sets dependency properties
btnMonday[i].SetValue(Grid.ColumnProperty, 0);
btnMonday[i].SetValue(Grid.RowProperty, i + 1);
// Adds the dynamically created control to the canvas
LayoutRoot.Children.Add(btnMonday[i]);
}
アップデート
コードのこの部分でまだエラーが発生しています::
Button[] btnMonday = new Button[20];
string[] timeslot = { "08:00 AM", "08:30 AM", "09:00 AM", "09:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "01:00 PM", "01:30 PM", "02:00 PM", "02:30 PM", "03:00 PM", "03:30 PM", "04:00 PM", "04:30 PM", "05:00 PM", "05:30 PM" };
#region Monday
for (int i = 0; i < 20; i++)
{
btnMonday[i] = new Button();
btnMonday[i].SetValue(Height, 38);
btnMonday[i].SetValue(Width, 256);
btnMonday[i].SetValue(Content, timeslot[i]);
// Sets dependency properties
btnMonday[i].SetValue(Grid.ColumnProperty, 0);
btnMonday[i].SetValue(Grid.RowProperty, i + 1);
// Adds the dynamically created control to the canvas
LayoutRoot.Children.Add(btnMonday[i]);
}
構文エラーの可能性はありますか?? バックグラウンドの値をボタンに設定する方法を知っているかもしれませんか?? 背景色を定義する以前のスタイルではうまく機能しないようです。エラーが発生します::
Error 2 Argument 1: cannot convert from 'double' to 'System.Windows.DependencyProperty'
と
Error 1 The best overloaded method match for 'System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, object)' has some invalid arguments
この数行のために
btnMonday[i].SetValue(Height, 38);
btnMonday[i].SetValue(Width, 256);
btnMonday[i].SetValue(Content, timeslot[i]);
btnMonday[i].SetValue(Background, 0xFF, 0xB1, 0xB1, 0xB1);