WPF:在自定义滚动查看器中,垂直滚动条比水平滚动条粗

问题描述 投票:0回答:1

我正在将 WPF 用于应用程序。在XAML代码中,我定义了水平滚动条和垂直滚动条的宽度和高度。不过,垂直滚动条还是比水平滚动条粗。

<Window x:Class="Sanganak._05_0_00_Main"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Sanganak"
        mc:Ignorable="d"
        Title="Sanganak" Height="900" Width="900" ResizeMode="CanResizeWithGrip" WindowStartupLocation="CenterScreen" Background="#162D2D" KeyDown="Window_KeyDown" >
    <Window.Resources>
        <ResourceDictionary>
            <Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Grid x:Name="Grid">
                                <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" />
                                <Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding Background}" />
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Tag" Value="Horizontal">
                                    <Setter TargetName="Rectangle1" Property="Width" Value="Auto"/>
                                    <Setter TargetName="Rectangle1" Property="Height" Value="7"/>
                                </Trigger>
                                <Trigger Property="Tag" Value="Vertical">
                                    <Setter TargetName="Rectangle1" Property="Width" Value="7"/>
                                    <Setter TargetName="Rectangle1" Property="Height" Value="Auto"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <!--Scroll Bars-->
            <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}" >
                <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
                <Setter Property="Foreground" Value="#404C54" />
                <Setter Property="Background" Value="Transparent" />
                <Setter Property="Width" Value="10" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ScrollBar}" >
                            <Grid x:Name="GridRoot" Width="12" Background="{x:Null}">
                                <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="True" Focusable="False">
                                    <Track.Thumb>
                                        <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}"/>
                                    </Track.Thumb>
                                    <Track.IncreaseRepeatButton>
                                        <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="False"/>
                                    </Track.IncreaseRepeatButton>
                                    <Track.DecreaseRepeatButton>
                                        <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="False"/>
                                    </Track.DecreaseRepeatButton>
                                </Track>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger SourceName="Thumb" Property="IsMouseOver" Value="True">
                                    <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background"/>
                                </Trigger>
                                <Trigger SourceName="Thumb" Property="IsDragging" Value="True">
                                    <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background"/>                                            
                                </Trigger>
                                <Trigger Property="IsEnabled" Value="False">
                                    <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" />
                                </Trigger>
                                <Trigger Property="Orientation" Value="Horizontal">
                                    <Setter TargetName="GridRoot" Property="LayoutTransform" >
                                        <Setter.Value>
                                            <RotateTransform Angle="-90"/>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter TargetName="PART_Track" Property="LayoutTransform" >
                                        <Setter.Value>
                                            <RotateTransform Angle="-90"/>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="Width" Value="Auto"/>
                                    <Setter Property="Height" Value="12"/>
                                    <Setter TargetName="Thumb" Property="Tag" Value="Horizontal"/>
                                    <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand"/>
                                    <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand"/>
                                </Trigger>                                
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>            
        </ResourceDictionary>        
    </Window.Resources>    
    <Grid>
        <ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" Background="Transparent" >
            <Frame x:Name="Frame01" NavigationUIVisibility="Hidden"/>
        </ScrollViewer>
    </Grid>
</Window>

我已经编写了代码并尝试了多种方法来修复。然而我没有成功。

wpf scrollviewer
1个回答
0
投票

我添加了,现在它工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.