0

这是 XAML

    <ListView x:Name="duplicateVarsInDepXMLListView" ItemsSource="{Binding}" HorizontalAlignment="Left" Height="100" Margin="362,360,0,0" VerticalAlignment="Top" Width="306">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding Name, StringFormat='Variable Name: {0}'}"/>                       
                    <TextBlock Text="{Binding Value,StringFormat='Value: {0}'}"/>                                               
                </StackPanel>                                           
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

此 xaml 显示包含变量名称和集合值的集合列表。我们有类似 Foreground 属性来改变绑定字符的颜色,或者 FontWeight 来使它变粗。但是我只想更改标签的字体,例如变量名,而不是实际的绑定。这有可能实现吗?有什么建议么

4

3 回答 3

4

您可以Run在 a 中使用元素TextBlock并将不同的格式应用于不同的运行。您可以绑定到 的FontFamily属性Run以动态设置字体:

<TextBlock>
  <Run Text="Variable Name: " FontFamily="{Binding FontName}"/>
  <Run Text="{Binding Name}"/>
</TextBlock>

TextBlock如果使用运行中的文本进行TextWrapping="Wrap"换行,则将按预期换行。这不适用于该问题,但可以使 usingRun元素优于TextBlock在 a 中堆叠元素StackPanel

于 2013-10-14T15:18:06.640 回答
2

提取单独的 TextBlock 并FontFamily在该 TextBlock 上设置。将两个 TextBlocks 包装在 StackPanel 中并将其设置orientationHorizontal-

<StackPanel>
   <StackPanel Orientation="Horizontal">
       <TextBlock Text="Variable Name: " FontFamily="Comic Sans MS"/>
       <TextBlock Text="{Binding Name}"/>
   </StackPanel>
   <TextBlock Text="{Binding Value,StringFormat='Value: {0}'}"/>
</StackPanel>
于 2013-10-14T15:20:40.260 回答
1

您可以执行以下操作:

<StackPanel Orientation=Horizontal>
  <TextBlock Text="Variable Name: "/>
  <TextBlock Text={Binding Name} FontWeight="Bold"/>
</StackPanel>
于 2013-10-14T15:19:23.150 回答