Skip to content

Commit ca428d6

Browse files
committed
Added scrolling to chat
1 parent fb2392f commit ca428d6

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

Client.UI/Views/Game/Chat.xaml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
44
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6+
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
67
xmlns:resx="clr-namespace:Client.UI.Resources"
78
xmlns:enums="clr-namespace:Client.UI.Enums"
89
xmlns:viewmodels="clr-namespace:Client.UI.ViewModels.MainGame"
910
mc:Ignorable="d"
1011
Title="{x:Static resx:Texts.Chat}"
11-
d:DesignHeight="200" d:DesignWidth="300">
12-
<Grid d:DataContext="{d:DesignInstance Type=viewmodels:ChatViewModel}">
12+
d:DesignHeight="200" d:DesignWidth="300"
13+
d:DataContext="{d:DesignInstance Type=viewmodels:ChatViewModel}">
14+
<Grid>
1315
<Grid.ColumnDefinitions>
1416
<ColumnDefinition MaxWidth="250" />
1517
<ColumnDefinition Width="3*"/>
@@ -34,28 +36,35 @@
3436
<RowDefinition />
3537
<RowDefinition Height="Auto"/>
3638
</Grid.RowDefinitions>
37-
<ItemsControl ItemsSource="{Binding Messages}" AlternationCount="2">
38-
<ItemsControl.ItemTemplate>
39-
<DataTemplate>
40-
<TextBlock Text="{Binding Text, Mode=OneWay}" TextWrapping="Wrap" x:Name="MessageTextBlock">
41-
<TextBlock.Style>
42-
<Style TargetType="TextBlock">
43-
<Style.Triggers>
44-
<DataTrigger Binding="{Binding Type}" Value="{x:Static enums:ChatMessageType.System}">
45-
<Setter Property="Foreground" Value="OrangeRed"/>
46-
</DataTrigger>
47-
</Style.Triggers>
48-
</Style>
49-
</TextBlock.Style>
50-
</TextBlock>
51-
<DataTemplate.Triggers>
52-
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
53-
<Setter Property="Background" Value="#F1F1F1" TargetName="MessageTextBlock" />
54-
</Trigger>
55-
</DataTemplate.Triggers>
56-
</DataTemplate>
57-
</ItemsControl.ItemTemplate>
58-
</ItemsControl>
39+
<ScrollViewer VerticalScrollBarVisibility="Visible" x:Name="ChatScrollViewer">
40+
<ItemsControl ItemsSource="{Binding Messages}" AlternationCount="2">
41+
<i:Interaction.Triggers>
42+
<i:EventTrigger SourceObject="{Binding Messages}" EventName="CollectionChanged">
43+
<i:CallMethodAction MethodName="ScrollToEnd" TargetObject="{Binding ElementName=ChatScrollViewer}" />
44+
</i:EventTrigger>
45+
</i:Interaction.Triggers>
46+
<ItemsControl.ItemTemplate>
47+
<DataTemplate>
48+
<TextBlock Text="{Binding Text, Mode=OneWay}" TextWrapping="Wrap" x:Name="MessageTextBlock">
49+
<TextBlock.Style>
50+
<Style TargetType="TextBlock">
51+
<Style.Triggers>
52+
<DataTrigger Binding="{Binding Type}" Value="{x:Static enums:ChatMessageType.System}">
53+
<Setter Property="Foreground" Value="OrangeRed"/>
54+
</DataTrigger>
55+
</Style.Triggers>
56+
</Style>
57+
</TextBlock.Style>
58+
</TextBlock>
59+
<DataTemplate.Triggers>
60+
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
61+
<Setter Property="Background" Value="#F1F1F1" TargetName="MessageTextBlock" />
62+
</Trigger>
63+
</DataTemplate.Triggers>
64+
</DataTemplate>
65+
</ItemsControl.ItemTemplate>
66+
</ItemsControl>
67+
</ScrollViewer>
5968
<Grid Grid.Row="1">
6069
<Grid.ColumnDefinitions>
6170
<ColumnDefinition />

0 commit comments

Comments
 (0)