КАК сделать часть текста TextFlock WPF полужирной, не вставляя другой TextBlock и не используя установщик свойств - PullRequest
0 голосов
/ 19 декабря 2018

У меня ниже TexBlock, и я должен динамически изменять его текстовое свойство на основе значения, выбранного в комбинированном окне WPF.

<TextBlock Padding="5 10 0 0">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
           <Setter Property="Text" Value="Select the items:" />
           <Style.Triggers>
               <DataTrigger Binding="{Binding ElementName=MyWPFCombo, Path=Id}" Value="10">
                   <Setter Property="Text" Value="Select the old items:" />
               </DataTrigger>                               
           </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

Моя проблема заключается в том, что мне нужно задать часть текста "Выберите старыйitems: «выделять жирным шрифтом, только часть« old items ».В других сценариях я знаю, что это может быть сделано путем встраивания в него текстового блока, в этом случае мне нужно установить его с помощью установщика.Как это сделать?

1 Ответ

0 голосов
/ 19 декабря 2018

Это неудобно, потому что вам нужно, чтобы часть текстового блока была выделена жирным шрифтом, и я не думаю, что вы можете свернуть строку.

    <StackPanel>
        <TextBlock Padding="5 10 0 0">
            <Run Text="Select the"/>
            <Bold>
                <Run>
                  <Run.Style>
                    <Style TargetType="Run">
                      <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=MyWPFCombo, Path=SelectedValue}" Value="10">
                            <Setter Property="Text" Value="old items:" />
                        </DataTrigger>
                    </Style.Triggers>                          
                    </Style>
                </Run.Style>
                </Run>
            </Bold>
            <Run>
               <Run.Style>
                    <Style TargetType="Run">
                        <Setter Property="Text" Value="items:" />
                      <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=MyWPFCombo, Path=SelectedValue}" Value="10">
                            <Setter Property="Text" Value="" />
                        </DataTrigger>
                    </Style.Triggers>                          
                    </Style>
                </Run.Style>                 

            </Run>
        </TextBlock>
        <ComboBox x:Name="MyWPFCombo" 
                  SelectedValuePath="Id"
                  DisplayMemberPath="Description"
                  ItemsSource="{Binding Items}"/>
    </StackPanel>
...