文本块没有添加?

时间:2014-01-07 09:23:46

标签: c# silverlight xaml windows-phone-8 windows-phone

我正在尝试动态生成一些UI元素。整个过程都有效,除了看起来像文本块是不可见的。

Grid pGrid = this.createPodiumGrid();

//create textblocks etc
TextBlock bTijd = new TextBlock();
bTijd.Text = currentGig.BeginTijd;
bTijd.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
bTijd.Foreground = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
Grid.SetColumn(bTijd, 0);
Grid.SetRow(bTijd, 0);
pGrid.Children.Add(bTijd);

TextBlock pName = new TextBlock();
pName.Text = currentGig.Podium.Naam;
pName.Margin = new Thickness(20, 0, 0, 0);
pName.Foreground = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
Grid.SetColumn(pName, 1);
Grid.SetRow(pName, 0);
pGrid.Children.Add(pName);

Image favImg = new Image();
favImg.Source = new BitmapImage(new Uri("/Images/thumb.png", UriKind.RelativeOrAbsolute));
favImg.Width = 50;
favImg.Height = 50;
favImg.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
Grid.SetColumn(favImg, 2);
Grid.SetRow(favImg, 0);
pGrid.Children.Add(favImg);

podiumStackPanel.Children.Add(pGrid);

最后一张图片显示在正确的位置。我在这里错过了什么吗?文本颜色是在白色背景的黑色。但我看不到文字。我100%肯定这个价值已被填补。

3 个答案:

答案 0 :(得分:4)

将您的代码更改为以下内容:

bTijd.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));

您已通过添加第一个“0”将颜色设置为透明。

答案 1 :(得分:1)

您已通过在Color.FromArgb中设置零Alpha值使前景透明。

将前景设置为Colors.Black,例如

bTijd.Foreground = new SolidColorBrush(Colors.Black);

或当然

bTijd.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));

答案 2 :(得分:1)

pName.Foreground = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));

Color.FromArgb的第一个参数是alpha通道。也就是说,不透明度。并且您将其设置为0,这解释了为什么TextBlock不可见。只需将其设置为255:

pName.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));

或使用Colors枚举:

pName.Foreground = new SolidColorBrush(Colors.Black);