Вопрос

у меня есть Style указано для Paragraph как часть моего FlowDocumentReaderРаздел ресурсов:

<FlowDocumentReader>
   <FlowDocumentReader.Resources>
      <Style x:Key="myStyle" TargetType="{x:Type Paragraph}">
         <Setter Property="Foreground" Value="LightSteelBlue" />
         <Setter Property="BorderBrush" Value="LightSteelBlue" />
         <Setter Property="BorderThickness" Value="1.0" />
         <Setter Property="FontStyle" Value="Italic" />
         <Setter Property="FontSize" Value="{Binding Path=MyFontSize}" />
      </Style>
   </FlowDocumentReader.Resources>
</FlowDocumentReader>

У меня есть файл .xaml, который содержит мой FlowDocument И у него есть некоторые ParagraphS, которые определены как SO:

<Paragraph Style='{DynamicResource myStyle}">
    Stuff here
</Paragraph>

Проблема, с которой у меня есть, в том, что Foreground не относится к тексту (он показывает черный, а не LightSteelBlue) и FontSize не меняется, когда MyFontSize свойство изменено.

Я проверил значение свойства в коде, и оно установлено, но это не приводит к изменению пользовательского интерфейса.

Похоже, это только проблема с FlowDocument Если он загружен в FlowDocumentReader во время выполнения. Если XAML явно помещен в FlowDocumentReader В файле .xaml Foreground правильный цвет и FontSize Изменения на основе настройки свойства.

Идеи?


Решено:

Как я написал в своем ответе ниже, перемещая Style заблокировать в разделе ресурсов FlowDocument Сам решает проблему.

Это было полезно?

Решение 2

Ну, я решил эту проблему, выдвинув блоки стиля из ресурсов FlowdocumentReader в раздел ресурсов самого FlowDocument. Результирующий протокок выглядит примерно так:

<FlowDocument>
   <FlowDocument.Resources>
      <Style x:Key="myStyle" TargetType="{x:Type Paragraph}">
         <Setter Property="Foreground" Value="LightSteelBlue" />
         <Setter Property="BorderBrush" Value="LightSteelBlue" />
         <Setter Property="BorderThickness" Value="1.0" />
         <Setter Property="FontStyle" Value="Italic" />
         <Setter Property="FontSize" Value="{Binding Path=MyFontSize}" />
      </Style>
   </FlowDocument.Resources>
   <Paragraph Style="{DynamicResource myStyle}">
      Stuff here
   </Paragraph>
</FlowDocument>

Другие советы

Вы пытались установить передний план для своего абзаца напрямую? Это должно быть другое свойство Propety/Acted, которое управляет содержимым передним планом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top