2013-10-12 41 views
0

我有一點問題。我使用戶能夠選擇文本塊的大小,在其中他可以通過執行其他操作來顯示文本。 這裏我的問題是,我必須添加一個邊框到文本塊來顯示用戶有多大。 當我申請了下面的代碼,我的程序崩潰只是在場景:添加邊框到文本塊後程序崩潰

   //create a TextBlock at desired position 

       TextBlock tmpTextBlock = new TextBlock 
       { 
        Width = 166, 
        Height = Math.Max(tmpY1, tmpY2) - Math.Min(tmpY1, tmpY2), 
        VerticalAlignment = VerticalAlignment.Top, 
        Margin = new Thickness(0, Math.Min(tmpY1, tmpY2) - 50, 0, (int)WeekGrid.ActualHeight - Math.Max(tmpY1, tmpY2)),    
        Text = "Type stuff here" 
       }; 

       tmpTextBlock.Holding += tmpTextBox_Holding; 
       tmpTextBlock.RightTapped += tmpTextBox_RightTapped; 

       WeekGrid.Children.Add(tmpTextBlock); 
       Grid.SetRow(tmpTextBlock, 1); 


       //add the border - these lines produce the problem 

       Border border = new Border 
       { 
        Child = tmpTextBlock, 
        Background = this.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush, 
        BorderBrush = this.Resources["ApplicationForegroundThemeBrush"] as SolidColorBrush, 
        BorderThickness = new Thickness(1), 
       }; 

下面是參數異常的例外:

值不在預期的範圍內。

編輯

哎呦我已經解決了這個問題。我不得不刪除將Textblock添加到網格中。 我現在的問題是邊框出現在網格周圍 - 不在文本塊周圍!

下面的代碼做出可能的:

   Border border = new Border 
       { 
        Child = tmpTextBlock, 
        Background = this.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush, 
        BorderBrush = this.Resources["ApplicationForegroundThemeBrush"] as SolidColorBrush, 
        BorderThickness = new Thickness(1), 
        Padding = new Thickness(24) 
       }; 

       WeekGrid.Children.Add(border); 
       Grid.SetRow(border, 1); 

編輯2

問題再次求解。 我當然不得不刪除文本塊的邊距設置!

非常感謝!

問候, FunkyPeanut

回答

0

你能張貼例外呢?

顯然有在你的代碼在這裏的錯誤:

  WeekGrid.Children.Add(tmpTextBlock); 
      Grid.SetRow(tmpTextBlock, 1); 

      //add the border - these lines produce the problem 

      Border border = new Border 
      { 
       Child = tmpTextBlock, 
       Background = this.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush, 
       BorderBrush = this.Resources["ApplicationForegroundThemeBrush"] as SolidColorBrush, 
       BorderThickness = new Thickness(1), 
      }; 

組件Border它就像一個「容器」,它接受一個單一的元素,您應該切換到:

  Border border = new Border 
      { 
       Child = tmpTextBlock, 
       Background = this.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush, 
       BorderBrush = this.Resources["ApplicationForegroundThemeBrush"] as SolidColorBrush, 
       BorderThickness = new Thickness(1), 
      }; 

      WeekGrid.Children.Add(border); 
      Grid.SetRow(border, 1); 

您還應該檢查資源是否可用於您的訪問。

+0

嘿。謝謝我已經嘗試了您的想法,但它仍然無法正常工作並拋出相同的異常。我也在我的文章中添加了異常。 – FunkyPeanut

+0

你可以檢查高度和保證金的值嗎?有沒有可能在這些行中找到問題? –

+0

我現在遇到的問題已經解決了。我不得不刪除將文本塊添加到網格中,而是添加邊框。還有一個發生。我在帖子中添加了更多信息。 – FunkyPeanut