今天做東西的時候,發現有一個現成的容器是ContentControl,可是自己沒有看過,查一下msdn嚇了一調,發現什麼都有,可是自己做了一個鼠標點擊的事件,卻沒有響應,後來發現上一個virtual的方法。
後來看到一個知道的回答中說可以用一個Content的來給它加一些內容,心想這不是我想要的嗎?
可是後來發現我加了一個label進去,沒有設置寬高,自動充滿了,沒有辦法了,設置一下方向與寬高,想加兩個呢,只能加一個容器,可是自己沒有辦法,對兩個分別的控制啊。
以致在後來的改變外觀的時候,我只能遍歷了所有的content裏面的全部內容。
還好實現了。好險,發現這樣的編程沒有一點安全感。
for (int i = 0; i < ListRegion.Count; i++)
{
Grid gridTemp = new Grid();
gridTemp = (Grid)ListRegion[i].UIE.Content;
foreach (UIElement element in gridTemp.Children)
{
Label labtemp = (Label)element;
if (labtemp.Content.ToString() == "?" || labtemp.Content.ToString() == flagSelect)
{
labtemp.Content = "x";
labtemp.Visibility = System.Windows.Visibility.Hidden;
}
}
ListRegion[i].CurrentSelectResult = false;
}
以上就是我遍歷的代碼
下面是一個容器的生成 。
//編號
Label txtflag = new Label();
txtflag.Height = 40;
txtflag.Width = 40;
txtflag.HorizontalAlignment = HorizontalAlignment.Left;
txtflag.VerticalAlignment = VerticalAlignment.Top;
txtflag.Content = flagCount.ToString();
//標誌
Label lbl1 = new Label();
lbl1.Height = 40;
lbl1.Width = 40;
lbl1.HorizontalAlignment = HorizontalAlignment.Right;
lbl1.VerticalAlignment = VerticalAlignment.Top;
string flagSelect = "√";
lbl1.Content = "?";
lbl1.Foreground = Brushes.Red;
lbl1.Visibility = System.Windows.Visibility.Hidden;
gird1.Children.Add(txtflag);
gird1.Children.Add(lbl1);
之後就是一些邏輯的操作了,可是發現設計不清楚的東西。自己理解不清楚的東西。做起來更難。