我有DataTable
列typeof(string)
。我正在为此表添加字符串,我需要以粗体显示一些文本。我的字符串看起来像这样:
row["UserData"] = user.Name + "\n" + user.Description + "\n" + user.Number + "\t" + user.Date;
是否可以将此代码中的user.Name
加粗?
我使用的是.NET 4.0和WPF。
答案 0 :(得分:4)
字符串只是文本,如果你想格式化文本你有多种方法这样做但我不知道任何“本机”。例如使用user.Name
周围的XML标记将格式编码为文本,然后某些控件可以使用它来显示它以调整渲染。
答案 1 :(得分:3)
DataTable只是一个数据存储 - 它不控制数据的显示。将ListView或其他WPF控件绑定到DataTable时,可以设置控件的列的样式,以粗体显示其中一列文本。
答案 2 :(得分:2)
使用DataGridRow在DataGrid中标记文本:WPF DataGrid Example
<Style x:Key="RowStyle" TargetType="{x:Type dg:DataGridRow}">
<Setter Property="ValidationErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Grid>
<Ellipse Width="12" Height="12"
Fill="Red" Stroke="Black"
StrokeThickness="0.5"/>
<TextBlock FontWeight="Bold" Padding="4,0,0,0"
Margin="0" VerticalAlignment="Top" Foreground="White" Text="!"
ToolTip="{Binding RelativeSource={RelativeSource
FindAncestor, AncestorType={x:Type dg:DataGridRow}},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
此link还显示了如何加粗StackPanel TextBlock。
答案 3 :(得分:1)
我99%确定你只能设置DataTable的列,而不是其中的数据。
答案 4 :(得分:1)
这在哪里显示?
这是一个纯文本连接字符串,您尝试使用粗体,是HTML,还是您希望IDE中代码的user.Name部分显示为粗体?
如果是纯文本,那么你无能为力。如果用星号(*)包围某些电子邮件客户端中的字符串将显示为粗体。
对于HTML,您可以用CSS或强/粗标记包围user.Name:
row["UserData"] = "<strong>" + user.Name + </strong>" + "\n" + user.Description + "\n" + user.Number + "\t" + user.Date;
或
row["UserData"] = "<span style='font-weight: bold;'>" + user.Name + "</span>" + "\n" + user.Description + "\n" + user.Number + "\t" + user.Date;