Текстовый блок wpf не понятен при использовании layouttransform

Я использую контроль TextBlock. Текст в TextBlock четко отображается с поворотом на 0 градусов.

Но если я повернул элемент управления на 90 градусов, используя LayoutTransform, текст не ясен. какой-то размытый дисплей.

Есть ли другой способ повернуть текст без LayoutTransform или любой другой способ для четкого отображения?

3 ответа

Попробуйте использовать "UseLayoutRounding=true" на вашем TextBox

Задайте для свойства TextBlock Foreground значение (например, Black). это работает над моим проектом, когда я поворачиваю текстовый блок на 90 градусов.

Я знаю, что это старый вопрос, однако, у меня была та же проблема с пользовательским элементом управления, у которого SnapsToDevicePixels = "True" и UseLayoutRounding = "True" с кодом ниже первой метки показывали размытое поле, в то время как нетрансформированный показал текст отлично. Я попытался передать привязки и округлить свойства до иерархии, и, в конце концов, единственное, что исправило это поведение, - это применил UseLayoutRounding = "True" к окну. Применение этого к любой другой дочерней панели или пользовательскому элементу не исправило это.

    <UserControl x:Class="MyApp.Controls.Indications"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300"
         SnapsToDevicePixels="True"
         UseLayoutRounding="True">
    <Stackpanel>

    <Label
        BorderBrush="Black"
        BorderThickness="1"
        HorizontalAlignment="Center">

        <TextBlock
            Width="100"
            TextAlignment="Center"
            Text="Left Outboard Actuator"
            TextWrapping="Wrap">

            <TextBlock.LayoutTransform>
                <RotateTransform

                    Angle="90"/>
            </TextBlock.LayoutTransform>

        </TextBlock>

    </Label>

    <Label
        BorderBrush="Black"
        BorderThickness="1"
        HorizontalAlignment="Center">

        <TextBlock
            Width="100"
            TextAlignment="Center"
            Text="Left Outboard Actuator"
            TextWrapping="Wrap">

        </TextBlock>

    </Label>

    </Stackpanel>
</UserControl>
Другие вопросы по тегам