WPF Style не влияет на определенные свойства - PullRequest
0 голосов
/ 26 января 2011

У меня есть 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 и у него есть Paragraph с, которые определены следующим образом:

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

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

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

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

Идеи?


Решено:

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

Ответы [ 2 ]

0 голосов
/ 26 января 2011

Что ж, я решил эту проблему, переместив блоки стилей из ресурсов FlowDocumentReader в раздел ресурсов самого FlowDocument.Получившийся 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>
0 голосов
/ 26 января 2011

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

...