Установите FontFamily и FontSize для приложения в App.xaml

Нет, кортежи типы последовательности точно так же, как строки. Они отсортированы то же путем сравнения каждого элемента в свою очередь:

>>> import random
>>> sorted([(0,0,0,int(random.getrandbits(4))) for x in xrange(10)])
[(0, 0, 0, 0), (0, 0, 0, 4), (0, 0, 0, 5), (0, 0, 0, 7), (0, 0, 0, 8),
(0, 0, 0, 9), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 14)]

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

10
задан Sauron 21 September 2009 в 08:26
поделиться

1 ответ

Я нашел сообщение в блоге Дэвида Пэдбери от 2008 года, в котором рассказывается об этом и о том, как изменить это из кода. По сути, вы переопределяете свойства метаданных, которые объединяют ваши изменения с существующими значениями.

TextElement.FontFamilyProperty.OverrideMetadata(
typeof(TextElement),
new FrameworkPropertyMetadata(
    new FontFamily("Comic Sans MS")));

TextBlock.FontFamilyProperty.OverrideMetadata(
typeof(TextBlock),
new FrameworkPropertyMetadata(
    new FontFamily("Comic Sans MS")));

Также есть это сообщение на форуме MSDN , в котором объясняется, как сделать это в XAML двумя способами.

1) Во-первых, вы определяете «глобальный» стиль для класса Control

 <Style TargetType="{x:Type Control}">
   <Setter Property="FontFamily" Value="Constantia"/>
 </Style>

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

<StackPanel   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 <StackPanel.Resources>
  <Style TargetType="{x:Type Control}" x:Key="ControlStyle">
     <Setter Property="FontFamily" Value="Constantia"/>
   </Style>

  <Style TargetType="{x:Type Label}" x:Key="LabelStyle" BasedOn="{StaticResource ControlStyle}">
   <Setter Property="FontWeight" Value="Bold" />
  </Style>
        <Style TargetType="{x:Type Button}" x:Key="ButtonStyle" BasedOn="{StaticResource ControlStyle}">
         <Setter Property="Background" Value="Blue"/>
  </Style>
 </StackPanel.Resources>

 <Label Style="{StaticResource LabelStyle}">This is a Label</Label>
 <Button Style="{StaticResource ButtonStyle}">This is a Button</Button>
</StackPanel>

2) Вы можете установить системные шрифты :

<FontFamily x:Key="{x:Static SystemFonts.MenuFontFamilyKey}">./#Segoe UI</FontFamily>
<System:Double x:Key="{x:Static SystemFonts.MenuFontSizeKey}">11</System:Double>
<FontWeight x:Key="{x:Static SystemFonts.MenuFontWeightKey}">Normal</FontWeight>

Хотя я бы, наверное, не рекомендовал это.

12
ответ дан 3 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: