Я не могу изменить размер шрифта в элементах Listview или заголовках столбцов - PullRequest
5 голосов
/ 09 декабря 2011
    <ListView x:Name="lstProductionOrders">
         <ListView.View>
              <GridView>
                   <GridViewColumn Header="Production Order:"/>
                        ...

Я установил размер шрифта в сетке, используя текстовый элемент, я установил его в виде списка, заголовка столбца, через стили, через стили, используя BasedOn. Я даже вставил новое тестовое окно, в котором не было никакого другого кода, кроме кода по умолчанию и списка, созданного таким же образом выше. Используя все вышеперечисленное, шрифт изменяется во время разработки, но не во время выполнения.

У меня всего 6 месяцев опыта работы с WPF / XAML, поэтому я могу искать не ту вещь. Существуют ли какие-то глобальные настройки для размера шрифта или что-нибудь, о чем кто-либо может подумать, что это может привести к переопределению.

Для записи у меня с тестовым окном нет базовых классов.

---------- ---------- EDIT

Это было источником проблемы в приложении. XAML

<Style TargetType="TextBlock">
        <Setter Property="FontFamily" Value="Times New Roman"/>
        <Setter Property="FontSize" Value="20"/>
</Style>

Ответы [ 3 ]

6 голосов
/ 09 декабря 2011

Похоже, у вас есть неявный стиль для GridViewColumn, который перезаписывает изменения, сделанные вами локально.

Во время разработки этот неявный стиль не учитывается (может быть по разным причинам), но во время выполнения он есть, и вы получаете такое странное поведение.

Я бы начал с просмотра раздела Ресурсы в App.xaml, а затем двигался вверх, пока не достигнул нужного мне элемента управления.

Дополнение: неявные стили:

<UserControl>
   <UserControl.Resources>
      <Style TargetType="TextBlock">
         <Setter Property="FontSize" Value="40" /> <!-- stupid value, just to make it obvious it changed something =) -->
      </Style>
   </UserControl.Resources>
</UserControl>

Если вы когда-нибудь захотите определить неявный стиль локально, не переписывая другой неявный стиль, установленный выше по цепочке, вы можете сделать это:

<UserControl>
   <UserControl.Resources>
      <Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
         <Setter Property="FontSize" Value="60" /> <!-- ridiculous value, just to make it obvious it changed something =) -->
      </Style>
   </UserControl.Resources>
</UserControl>

Он унаследует неявный стиль и добавит изменения для локального UserControl.

4 голосов
/ 09 декабря 2011

Для меня следующие работы как для заголовка, так и для пунктов:

<ListView ItemsSource="{Binding Source={StaticResource Items}}"
          TextElement.FontSize="16">
    <!-- ... -->

Не знаю, что может быть не так в вашем случае, хотя ...

1 голос
/ 09 декабря 2011

если вы хотите установить только размер заголовка, попробуйте это решение или используйте @ H.B. решение

<ListView x:Name="lstProductionOrders" >
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <GridViewColumnHeader TextElement.FontSize="16">Production Order:/GridViewColumnHeader>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

enter image description here

надеюсь, это поможет

...