2016-02-18 3 views
2

У меня проблема с текстом. В некоторых пользовательских UserControls она мерцает каждый больше/меньше второго (возможно при визуализации) вот GIF: Flickering textМерцающий и размытый текст

Я использую эти визуализации и варианты текста на данный момент, которые применяются на Window:

RenderOptions.ClearTypeHint="Enabled" 
TextOptions.TextFormattingMode="Display" 
RenderOptions.BitmapScalingMode="HighQuality" 

Я использовал это раньше:

RenderOptions.ClearTypeHint="Enabled" 
RenderOptions.BitmapScalingMode="Linear" 
TextOptions.TextRenderingMode="Grayscale" 
TextOptions.TextFormattingMode="Display" 

и это было нормально, но текст был слишком резким.

XAML этого специфического компонента:

<UserControl x:Class="FunctionButton" x:Name="PART_Base" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm" xmlns:ViewModels="clr-namespace:SkyPCTool" 
     xmlns:materialDesign="clr-namespace:MaterialDesignThemes.Wpf;assembly=MaterialDesignThemes.Wpf" 
     mc:Ignorable="d" 
     TextElement.FontWeight="Medium" 
     TextElement.FontSize="14" 
     FontFamily="pack://application:,,,/MaterialDesignThemes.Wpf;component/Resources/Roboto/#Roboto" 
     MinHeight="52" d:DesignWidth="300" Margin="0"> 
<UserControl.DataContext> 
    <ViewModels:FunctionButtonViewModel/> 
</UserControl.DataContext> 
<UserControl.Resources> 
    <ViewModels:TextToVisibilityConverter x:Key="textConverter" /> 
</UserControl.Resources> 
<Border CornerRadius="2" Background="{StaticResource MaterialDesignPaper}"> 
    <Grid Margin="12,6"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="3*" /> 
     </Grid.ColumnDefinitions> 
     <Button x:Name="PART_Button" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="12,6" Content="{Binding ButtonCaption}" /> 
     <Grid Grid.Column="1" Margin="6,0"> 
      <Image Source="{Binding Icon}" ToolTip="{Binding IconTag}" /> 
     </Grid> 
     <Grid Grid.Column="2" SnapsToDevicePixels="True"> 
      <Grid.RowDefinitions> 
       <RowDefinition /> 
       <RowDefinition Height="Auto" /> 
      </Grid.RowDefinitions> 
      <TextBlock Grid.Row="0" Text="{Binding Title}" RenderOptions.ClearTypeHint="Enabled" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontSize="14" /> 
      <TextBlock Grid.Row="1" Text="{Binding Description}" RenderOptions.ClearTypeHint="Enabled" Margin="12,0,0,0" Visibility="{Binding Text, RelativeSource={RelativeSource Self}, Converter={StaticResource textConverter}}" FontWeight="Normal" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="12.667" /> 
     </Grid> 
    </Grid> 
</Border> 

+0

на вашем окне, попробуйте изменить 'TextOptions.TextFormattingMode = "Дисплей"' к ** TextOptions.TextFormattingMode = "Ideal" ** – Codexer

+0

Все еще мерцает, и теперь некоторые компоненты настолько расплывчаты, что «болят» глаза. –

+0

Хм, ну, как у вас есть он использует макеты шрифтов GDI, я подумал, что это может вызвать проблему ... – Codexer

ответ

1

я это сделал. Я скачал шрифт Roboto из Google website, то я установить эти параметры на Window:

RenderOptions.ClearTypeHint="Enabled" 
TextOptions.TextFormattingMode="Ideal" 
TextOptions.TextHintingMode="Animated" 
TextOptions.TextRenderingMode="ClearType" 
+0

Так что TextFormattingMode и TextHintingMode работают, я вижу, рад, что у вас это получилось! – Codexer

+0

Да это сработало отлично спасибо! –

Смежные вопросы