Scrollbar nerviges Rechteck rechts unten

  • WPF

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von newcat.

    Scrollbar nerviges Rechteck rechts unten

    Hallo,

    ich habe es endlich geschafft meine Scrollbars zu stylen, allerdings habe ich jetzt immer, sobald beide Scrollbars angezeigt werden, folgendes Problem:

    Es entsteht ein nerviges Rechteck in der rechten unteren Ecke, das ich nicht wegbekomme. Wenn ich das Internet bisher richtig verstanden habe, ist das auch nicht direkt zu den Scrollbars zugehörig, sondern zum übergeordneten Container.
    Bei mir ist das eine ListView, ich habe zu dieser aber leider nichts gefunden, dass beschreibt, wie ich dieses Rechteck wegbekomme.

    Vielen Dank schonmal!
    Twitch Viewer Display Chat-, Zuschauer- und Statistiktool für Streamer
    Mit welchen Properties hast Du denn die

    newcat schrieb:

    Scrollbars
    so sichtbar gemacht?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das macht die ListView automatisch, je nachdem ob es vom Inhalt her nötig ist oder nicht. Ich poste hier mal den Code für die ScrollBars, ich habe das einfach mit einem Style für {x:Type ScrollBar} in den Window.Resources gemacht:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
    2. <Setter Property="OverridesDefaultStyle" Value="True" />
    3. <Style.Triggers>
    4. <Trigger Property="Orientation" Value="Vertical">
    5. <Setter Property="Width" Value="18" />
    6. <Setter Property="Height" Value="Auto" />
    7. <Setter Property="Template" Value="{DynamicResource sbVert}" />
    8. </Trigger>
    9. <Trigger Property="Orientation" Value="Horizontal">
    10. <Setter Property="Width" Value="Auto" />
    11. <Setter Property="Height" Value="18" />
    12. <Setter Property="Template" Value="{DynamicResource sbHori}" />
    13. </Trigger>
    14. </Style.Triggers>
    15. </Style>
    16. <ControlTemplate x:Key="sbVert" TargetType="{x:Type ScrollBar}">
    17. <Grid>
    18. <Grid.RowDefinitions>
    19. <RowDefinition MaxHeight="18" />
    20. <RowDefinition Height="0.00001*" />
    21. <RowDefinition MaxHeight="18" />
    22. </Grid.RowDefinitions>
    23. <Border Grid.RowSpan="3" CornerRadius="4" BorderBrush="White" BorderThickness="0" />
    24. <RepeatButton Grid.Row="0"
    25. Style="{DynamicResource ScrollBarLineButton}"
    26. Height="18"
    27. Command="ScrollBar.LineUpCommand"
    28. Content="M 0 4 L 8 4 L 4 0 Z" />
    29. <RepeatButton Grid.Row="3"
    30. Style="{DynamicResource ScrollBarLineButton}"
    31. Height="18"
    32. Command="ScrollBar.LineDownCommand"
    33. Content="M 0 0 L 4 4 L 8 0 Z" />
    34. <Track x:Name="PART_Track" Grid.Row="1" IsDirectionReversed="True">
    35. <Track.Thumb>
    36. <Thumb Margin="1,0,1,0">
    37. <Thumb.Style>
    38. <Style TargetType="{x:Type Thumb}">
    39. <Setter Property="Focusable" Value="False" />
    40. <Setter Property="Template" Value="{DynamicResource scrollBarThumb}" />
    41. </Style>
    42. </Thumb.Style>
    43. </Thumb>
    44. </Track.Thumb>
    45. </Track>
    46. </Grid>
    47. </ControlTemplate>
    48. <ControlTemplate x:Key="sbHori" TargetType="{x:Type ScrollBar}">
    49. <Grid>
    50. <Grid.ColumnDefinitions>
    51. <ColumnDefinition MaxWidth="18" />
    52. <ColumnDefinition Width="0.00001*" />
    53. <ColumnDefinition MaxWidth="18" />
    54. </Grid.ColumnDefinitions>
    55. <Border Grid.ColumnSpan="4" Background="Transparent" BorderThickness="0" />
    56. <RepeatButton Grid.Column="0"
    57. Style="{DynamicResource ScrollBarLineButton}"
    58. Width="18"
    59. Command="ScrollBar.LineLeftCommand"
    60. Content="M 4 0 L 4 8 L 0 4 Z" />
    61. <RepeatButton Grid.Column="3"
    62. Style="{DynamicResource ScrollBarLineButton}"
    63. Width="18"
    64. Command="ScrollBar.LineRightCommand"
    65. Content="M 0 0 L 4 4 L 0 8 Z" />
    66. <Track x:Name="PART_Track" Grid.Column="1" IsDirectionReversed="False">
    67. <Track.Thumb>
    68. <Thumb Margin="0,1,0,1">
    69. <Thumb.Style>
    70. <Style TargetType="{x:Type Thumb}">
    71. <Setter Property="Focusable" Value="False" />
    72. <Setter Property="Template" Value="{DynamicResource scrollBarThumb}" />
    73. </Style>
    74. </Thumb.Style>
    75. </Thumb>
    76. </Track.Thumb>
    77. </Track>
    78. </Grid>
    79. </ControlTemplate>
    80. <Style x:Key="ScrollBarLineButton" TargetType="{x:Type RepeatButton}">
    81. <Setter Property="Focusable" Value="False" />
    82. <Setter Property="Template">
    83. <Setter.Value>
    84. <ControlTemplate TargetType="{x:Type RepeatButton}">
    85. <Border x:Name="repbtnBorder" Margin="1" CornerRadius="2" BorderThickness="1" BorderBrush="White">
    86. <Border.Background>
    87. <SolidColorBrush Color="Transparent" />
    88. </Border.Background>
    89. <Path x:Name="repbtnPath" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="White"
    90. Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" />
    91. <VisualStateManager.VisualStateGroups>
    92. <VisualStateGroup x:Name="CommonStates">
    93. <VisualState x:Name="Normal">
    94. <Storyboard>
    95. <ColorAnimation To="Transparent" Duration="00:00:00.1"
    96. Storyboard.TargetName="repbtnBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    97. </Storyboard>
    98. </VisualState>
    99. <VisualState x:Name="MouseOver">
    100. <Storyboard>
    101. <ColorAnimation To="#40FFFFFF" Duration="00:00:00.1"
    102. Storyboard.TargetName="repbtnBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    103. </Storyboard>
    104. </VisualState>
    105. <VisualState x:Name="Pressed">
    106. <Storyboard>
    107. <ColorAnimation To="#40000000" Duration="00:00:00.0"
    108. Storyboard.TargetName="repbtnBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    109. </Storyboard>
    110. </VisualState>
    111. </VisualStateGroup>
    112. </VisualStateManager.VisualStateGroups>
    113. </Border>
    114. </ControlTemplate>
    115. </Setter.Value>
    116. </Setter>
    117. </Style>
    118. <ControlTemplate x:Key="scrollBarThumb" TargetType="{x:Type Thumb}">
    119. <Border BorderBrush="White" BorderThickness="1" CornerRadius="2" x:Name="thumbBorder">
    120. <Border.Background>
    121. <SolidColorBrush />
    122. </Border.Background>
    123. <VisualStateManager.VisualStateGroups>
    124. <VisualStateGroup x:Name="CommonStates">
    125. <VisualState x:Name="Normal">
    126. <Storyboard>
    127. <ColorAnimation To="Transparent" Duration="00:00:00.1"
    128. Storyboard.TargetName="thumbBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    129. </Storyboard>
    130. </VisualState>
    131. <VisualState x:Name="MouseOver">
    132. <Storyboard>
    133. <ColorAnimation To="#40FFFFFF" Duration="00:00:00.1"
    134. Storyboard.TargetName="thumbBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    135. </Storyboard>
    136. </VisualState>
    137. <VisualState x:Name="Pressed">
    138. <Storyboard>
    139. <ColorAnimation To="#40000000" Duration="00:00:00.0"
    140. Storyboard.TargetName="thumbBorder" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" />
    141. </Storyboard>
    142. </VisualState>
    143. </VisualStateGroup>
    144. </VisualStateManager.VisualStateGroups>
    145. </Border>
    146. </ControlTemplate>

    Twitch Viewer Display Chat-, Zuschauer- und Statistiktool für Streamer
    Ich habe jetzt wohl die Lösung gefunden: Interessanterweise musste ich den Style von dieser Vorlage msdn.microsoft.com/en-us/library/ms788747(v=vs.110).aspx noch einmal extra reinkopieren damit das Rechteck verschwindet... verändert habe ich nichts (außer den ganzen unnötigen Müll entfernt)?!, aber Hauptsache es funktioniert 8-)
    Twitch Viewer Display Chat-, Zuschauer- und Statistiktool für Streamer