少し問題があります。ユーザーが他のことをしてテキストを表示できるテキストブロックのサイズを選択できるようにしています。ここでの問題は、テキストブロックに境界線を追加して、ユーザーがどれだけ大きくなったかを示す必要があることです。次のコードを適用すると、そのシナリオでプログラムがクラッシュするだけです。
//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