我正在使用Uno平台,并试图通过C#创建一个材料卡。我已经找到了许多用XAML创建的卡片的例子,但是在C#中什么也找不到。
下面是我的当前代码,用于创建一张卡片并将其添加到网格中。我知道我需要通过添加一个HeaderContentTemplate和SubHeaderContentTemplate来做一些事情,但是我确信到底需要做些什么。
Card myCard = new Card();
myCard.HeaderContent = "test";
myCard.SubHeaderContent = "test";
Grid.SetRow(myCard, k);
Grid.SetColumn(myCard, l);
myGrid.Children.Add(myCard);任何帮助都将不胜感激。谢谢。
发布于 2022-12-03 22:29:00
要将HeaderContentTemplate和SubHeaderContentTemplate添加到卡中,可以尝试使用Card.HeaderContentTemplate和Card.SubHeaderContentTemplate属性。这些属性允许您指定一个DataTemplate,它定义了卡的标题和子标题内容的外观。
下面是一个示例,说明如何使用这些属性为您的卡头和子标头创建一个DataTemplate:
Card myCard = new Card();
myCard.HeaderContent = "test";
myCard.SubHeaderContent = "test";
// Create a DataTemplate for the header content of the card
DataTemplate headerTemplate = new DataTemplate();
FrameworkElementFactory headerFactory = new FrameworkElementFactory(typeof(TextBlock));
headerFactory.SetValue(TextBlock.TextProperty, "Header: ");
headerFactory.SetValue(TextBlock.FontSizeProperty, 14.0);
headerFactory.SetValue(TextBlock.FontWeightProperty, FontWeights.Bold);
headerTemplate.VisualTree = headerFactory;
myCard.HeaderContentTemplate = headerTemplate;
// Create a DataTemplate for the subheader content of the card
DataTemplate subheaderTemplate = new DataTemplate();
FrameworkElementFactory subheaderFactory = new FrameworkElementFactory(typeof(TextBlock));
subheaderFactory.SetValue(TextBlock.TextProperty, "Subheader: ");
subheaderFactory.SetValue(TextBlock.FontSizeProperty, 12.0);
subheaderFactory.SetValue(TextBlock.FontWeightProperty, FontWeights.Normal);
subheaderTemplate.VisualTree = subheaderFactory;
myCard.SubHeaderContentTemplate = subheaderTemplate;
Grid.SetRow(myCard, k);
Grid.SetColumn(myCard, l);
myGrid.Children.Add(myCard);在这个例子中,我们为每个卡的头和子头内容创建一个DataTemplate。DataTemplate使用TextBlock元素指定内容的外观。然后,我们将Card.HeaderContentTemplate和Card.SubHeaderContentTemplate属性设置为我们创建的DataTemplate对象。
发布于 2022-12-04 04:48:23
我无法让材料卡通过C#工作,所以我最终制作了一个模板xaml和C#文件,我构建了我的卡的结构。然后我通过C#创建了它。
https://stackoverflow.com/questions/74671257
复制相似问题