我正在尝试动态生成一些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%肯定这个价值已被填补。
答案 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);