Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TabControl项标题文本在旋转选项卡后显示模糊_C#_Wpf_Xaml_.net 4.0 - Fatal编程技术网

C# TabControl项标题文本在旋转选项卡后显示模糊

C# TabControl项标题文本在旋转选项卡后显示模糊,c#,wpf,xaml,.net-4.0,C#,Wpf,Xaml,.net 4.0,我需要创建一个WPF TabControl控件,并将选项卡向左旋转 我在网上找到的资源表明,这可以通过对TabControl应用以下两件事来实现: <Setter Property="LayoutTransform"> <Setter.Value> <RotateTransform Angle="270"/> </Setter.Value> </Setter> 及 所有这些工作正常,选项卡按要求显示,但由于某些

我需要创建一个WPF TabControl控件,并将选项卡向左旋转

我在网上找到的资源表明,这可以通过对TabControl应用以下两件事来实现:

<Setter Property="LayoutTransform">
   <Setter.Value>
     <RotateTransform Angle="270"/>
   </Setter.Value>
</Setter>

所有这些工作正常,选项卡按要求显示,但由于某些原因,选项卡中的标题文本在旋转后显得模糊,请说明发生这种情况的原因,以及我是否可以采取任何措施来解决此问题

完整的XAML:


您可以签出RenderOptions类,该类控制对象的渲染行为。例如,可以查看用于减少图像模糊的部分。

您可以查看控制对象渲染行为的RenderOptions类。例如,在使用它来减少图像模糊的地方可以看到这一点。

尝试将SnapsToDevicePixels=True和UseLayoutRounding=True添加到边框或TabControl标记中。在大多数情况下,这些解决了我的模糊问题。 我建议使用以下代码片段:

<TabControl TabStripPlacement="Left" Margin="5"  FontSize="13" FontFamily="Verdana" Grid.ColumnSpan="2" SnapsToDevicePixels="True" UseLayoutRounding="True" >
                        <TabControl.Resources>
                            <Style TargetType="{x:Type TabItem}">
                                <Setter Property="BorderThickness" Value="0"/>
                                <Setter Property="Padding" Value="0" />
                                <Setter Property="HeaderTemplate">
                                    <Setter.Value>
                                        <DataTemplate>
                                            <Border x:Name="grid" Margin="0" >
                                                <Border.LayoutTransform>
                                                    <RotateTransform Angle="270" ></RotateTransform>
                                                </Border.LayoutTransform>
                                                <ContentPresenter>
                                                    <ContentPresenter.Content>
                                                        <TextBlock FontFamily="Verdana"   Margin="4"  Text="{TemplateBinding Content}">

                                                        </TextBlock>

                                                    </ContentPresenter.Content>
                                                </ContentPresenter>
                                            </Border>
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </TabControl.Resources>
                        <TabItem Name="General"   Header="YourHeader"  > ..
尝试将SnapsToDevicePixels=True和UseLayoutRounding=True添加到边框或TabControl标记中。在大多数情况下,这些解决了我的模糊问题。 我建议使用以下代码片段:

<TabControl TabStripPlacement="Left" Margin="5"  FontSize="13" FontFamily="Verdana" Grid.ColumnSpan="2" SnapsToDevicePixels="True" UseLayoutRounding="True" >
                        <TabControl.Resources>
                            <Style TargetType="{x:Type TabItem}">
                                <Setter Property="BorderThickness" Value="0"/>
                                <Setter Property="Padding" Value="0" />
                                <Setter Property="HeaderTemplate">
                                    <Setter.Value>
                                        <DataTemplate>
                                            <Border x:Name="grid" Margin="0" >
                                                <Border.LayoutTransform>
                                                    <RotateTransform Angle="270" ></RotateTransform>
                                                </Border.LayoutTransform>
                                                <ContentPresenter>
                                                    <ContentPresenter.Content>
                                                        <TextBlock FontFamily="Verdana"   Margin="4"  Text="{TemplateBinding Content}">

                                                        </TextBlock>

                                                    </ContentPresenter.Content>
                                                </ContentPresenter>
                                            </Border>
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </TabControl.Resources>
                        <TabItem Name="General"   Header="YourHeader"  > ..

将以下属性添加到窗口声明XAML中

TextOptions.TextFormattingMode="Display"
TextOptions.TextRenderingMode="ClearType"
UseLayoutRounding="true"

将以下属性添加到窗口声明XAML中

TextOptions.TextFormattingMode="Display"
TextOptions.TextRenderingMode="ClearType"
UseLayoutRounding="true"

嗨,丹尼,你能发布一个正在发生的事情的屏幕截图吗?可能这与反锯齿有关。你能在窗口上的try UseLayoutRounding=true获取一个战利品吗。可能是像素捕捉。如果将所有选项卡项旋转-90°,则需要将其内容向后旋转90°。我认为最好只旋转TextBlock的TabItem标题。嗨,Deni,你能发布一个正在发生的事情的屏幕截图吗?可能这与抗锯齿有关。你能在窗口上尝试使用LayoutRounding=true获取一点战利品吗。可能是像素捕捉。如果将所有选项卡项旋转-90°,则需要将其内容向后旋转90°。我认为最好只旋转TextBlock的TabItem标题。谢谢你的解决方案。在.NET3.5中我可以做什么?这仅在.NET4上有效。感谢您提供的解决方案。在.NET3.5中我可以做什么?这仅在.NET4上有效。