wpf 關於ContentControl一些記錄

今天做東西的時候,發現有一個現成的容器是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);

之後就是一些邏輯的操作了,可是發現設計不清楚的東西。自己理解不清楚的東西。做起來更難。

發佈了45 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章