Skip to content

Commit 3b2c5b8

Browse files
committed
started making horizontal scrollbar
1 parent e397126 commit 3b2c5b8

3 files changed

Lines changed: 110 additions & 12 deletions

File tree

CutCode/App.xaml

Lines changed: 89 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,34 @@
4242
</Style>
4343

4444
<!--Scrollbar Thumbs-->
45-
<Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
45+
<Style x:Key="VerticalScrollThumbs" TargetType="{x:Type Thumb}">
4646
<Setter Property="Template">
4747
<Setter.Value>
4848
<ControlTemplate TargetType="{x:Type Thumb}">
4949
<Grid x:Name="Grid">
5050
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent"/>
51-
<Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding Background}"/>
51+
<Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch"
52+
VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding Background}"/>
53+
</Grid>
54+
<ControlTemplate.Triggers>
55+
<Trigger Property="Tag" Value="Horizontal">
56+
<Setter TargetName="Rectangle1" Property="Width" Value="Auto"/>
57+
<Setter TargetName="Rectangle1" Property="Height" Value="7"/>
58+
</Trigger>
59+
</ControlTemplate.Triggers>
60+
</ControlTemplate>
61+
</Setter.Value>
62+
</Setter>
63+
</Style>
64+
65+
<Style x:Key="HorizontalScrollThumbs" TargetType="{x:Type Thumb}">
66+
<Setter Property="Template">
67+
<Setter.Value>
68+
<ControlTemplate TargetType="{x:Type Thumb}">
69+
<Grid x:Name="Grid">
70+
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent"/>
71+
<Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch"
72+
VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding Background}"/>
5273
</Grid>
5374
<ControlTemplate.Triggers>
5475
<Trigger Property="Tag" Value="Horizontal">
@@ -62,7 +83,7 @@
6283
</Style>
6384

6485
<!--ScrollBars-->
65-
<Style x:Key="ScrollBarStyle" TargetType="{x:Type ScrollBar}">
86+
<Style x:Key="VerticalScrollBar" TargetType="{x:Type ScrollBar}">
6687
<Setter Property="Foreground" Value="#8C8C8C"/>
6788
<Setter Property="Background" Value="Transparent"/>
6889
<Setter Property="Width" Value="8"/>
@@ -76,7 +97,7 @@
7697

7798
<Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false">
7899
<Track.Thumb>
79-
<Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{StaticResource ScrollThumbs}"/>
100+
<Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{StaticResource VerticalScrollThumbs}"/>
80101
</Track.Thumb>
81102
<Track.IncreaseRepeatButton>
82103
<RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false"/>
@@ -102,8 +123,8 @@
102123
<RotateTransform Angle="-90"/>
103124
</Setter.Value>
104125
</Setter>
105-
<Setter Property="Width" Value="Auto"/>
106-
<Setter Property="Height" Value="8"/>
126+
<Setter Property="Width" Value="8"/>
127+
<Setter Property="Height" Value="Auto"/>
107128
<Setter TargetName="Thumb" Property="Tag" Value="Horizontal"/>
108129
<Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand"/>
109130
<Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand"/>
@@ -114,23 +135,82 @@
114135
</Setter>
115136
</Style>
116137

138+
<Style x:Key="HorizontalScrollBar" TargetType="{x:Type ScrollBar}">
139+
<Setter Property="Foreground" Value="#8C8C8C"/>
140+
<Setter Property="Background" Value="Transparent"/>
141+
<Setter Property="Height" Value="8"/>
142+
<Setter Property="Template">
143+
<Setter.Value>
144+
<ControlTemplate TargetType="{x:Type ScrollBar}">
145+
<Grid x:Name="GridRoot" Height="8" Background="{TemplateBinding Background}">
146+
<Grid.ColumnDefinitions>
147+
<ColumnDefinition Width="0.00001*"/>
148+
</Grid.ColumnDefinitions>
149+
150+
<Track x:Name="PART_Track" Grid.Column="0" IsDirectionReversed="true" Focusable="false">
151+
<Track.Thumb>
152+
<Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{StaticResource HorizontalScrollThumbs}"/>
153+
</Track.Thumb>
154+
<Track.IncreaseRepeatButton>
155+
<RepeatButton x:Name="PageRight" Command="ScrollBar.PageRightCommand" Opacity="0" Focusable="false"/>
156+
</Track.IncreaseRepeatButton>
157+
<Track.DecreaseRepeatButton>
158+
<RepeatButton x:Name="PageLeft" Command="ScrollBar.PageLeftCommand" Opacity="0" Focusable="false"/>
159+
</Track.DecreaseRepeatButton>
160+
</Track>
161+
</Grid>
162+
163+
<ControlTemplate.Triggers>
164+
<Trigger Property="IsEnabled" Value="false">
165+
<Setter TargetName="Thumb" Property="Visibility" Value="Collapsed"/>
166+
</Trigger>
167+
<Trigger Property="Orientation" Value="Horizontal">
168+
<Setter TargetName="GridRoot" Property="LayoutTransform">
169+
<Setter.Value>
170+
<RotateTransform Angle="-90"/>
171+
</Setter.Value>
172+
</Setter>
173+
<Setter TargetName="PART_Track" Property="LayoutTransform">
174+
<Setter.Value>
175+
<RotateTransform Angle="-90"/>
176+
</Setter.Value>
177+
</Setter>
178+
<Setter Property="Width" Value="Auto"/>
179+
<Setter Property="Height" Value="8"/>
180+
<Setter TargetName="Thumb" Property="Tag" Value="Horizontal"/>
181+
<Setter TargetName="PageLeft" Property="Command" Value="ScrollBar.PageLeftCommand"/>
182+
<Setter TargetName="PageRight" Property="Command" Value="ScrollBar.PageRightCommand"/>
183+
</Trigger>
184+
</ControlTemplate.Triggers>
185+
</ControlTemplate>
186+
</Setter.Value>
187+
</Setter>
188+
</Style>
189+
117190
<!-- ScrollViewer -->
118191
<Style x:Key="ScrollViewerStyle" TargetType="{x:Type ScrollViewer}">
119192
<Setter Property="OverridesDefaultStyle" Value="True"/>
193+
<Setter Property="FlowDirection" Value="LeftToRight"/>
120194
<Setter Property="Template">
121195
<Setter.Value>
122196
<ControlTemplate TargetType="{x:Type ScrollViewer}">
123197
<Grid>
124198
<Grid.ColumnDefinitions>
125-
<ColumnDefinition Width="16"/>
126199
<ColumnDefinition />
127200
<ColumnDefinition Width="16"/>
128201
</Grid.ColumnDefinitions>
129202
<Grid.RowDefinitions>
130203
<RowDefinition />
204+
<RowDefinition Height="16"/>
131205
</Grid.RowDefinitions>
132-
<ScrollContentPresenter Grid.ColumnSpan="3" />
133-
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Style="{DynamicResource ScrollBarStyle}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
206+
<ScrollContentPresenter Grid.ColumnSpan="3"/>
207+
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="1" Value="{TemplateBinding VerticalOffset}"
208+
Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}"
209+
Style="{DynamicResource VerticalScrollBar}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
210+
211+
<ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Row="1" Value="{TemplateBinding HorizontalOffset}"
212+
Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}"
213+
Style="{DynamicResource HorizontalScrollBar}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
134214
</Grid>
135215
</ControlTemplate>
136216
</Setter.Value>

CutCode/Views/AddView.xaml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,25 @@
2323
</Setter.Value>
2424
</Setter>
2525
</Style>
26-
26+
<Style x:Key="AvalonSample" TargetType="{x:Type local:BindableAvalonEditor}">
27+
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
28+
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
29+
<Setter Property="FlowDirection" Value="LeftToRight"/>
30+
<Setter Property="Template">
31+
<Setter.Value>
32+
<ControlTemplate TargetType="{x:Type local:BindableAvalonEditor}">
33+
<Border Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
34+
<ScrollViewer x:Name="PART_ScrollViewer" Content="{Binding TextArea, RelativeSource={RelativeSource TemplatedParent}}" CanContentScroll="True" Focusable="False" HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}" HorizontalContentAlignment="Left" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Top" VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"/>
35+
</Border>
36+
<ControlTemplate.Triggers>
37+
<Trigger Property="WordWrap" Value="True">
38+
<Setter Property="HorizontalScrollBarVisibility" TargetName="PART_ScrollViewer" Value="Disabled"/>
39+
</Trigger>
40+
</ControlTemplate.Triggers>
41+
</ControlTemplate>
42+
</Setter.Value>
43+
</Setter>
44+
</Style>
2745
</Grid.Resources>
2846

2947
<Grid.RowDefinitions>
@@ -120,7 +138,7 @@
120138
Text="{Binding code}"
121139
SyntaxHighlighting="{Binding CurrentLang, Converter={StaticResource HighlightingDefinitionConverter}}"/>
122140
</Border>
123-
141+
124142
<Grid Grid.Row="3">
125143
<Grid.ColumnDefinitions>
126144
<ColumnDefinition Width="*"/>

ICSharpCode.AvalonEdit/TextEditor.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
BorderBrush="{TemplateBinding BorderBrush}"
1717
BorderThickness="{TemplateBinding BorderThickness}">
1818
<ScrollViewer
19-
Style="{DynamicResource ScrollViewerStyle}"
19+
Style="{DynamicResource ScrollViewerStyle}"
2020
Focusable="False"
2121
x:Name="PART_ScrollViewer"
2222
CanContentScroll="True"

0 commit comments

Comments
 (0)