Skip to content

Commit bcf7494

Browse files
committed
proper styles for IdentityKeyChangeMessages and the UnreadMarker
1 parent 4ea6d18 commit bcf7494

File tree

2 files changed

+34
-25
lines changed

2 files changed

+34
-25
lines changed

Signal-Windows/Controls/Conversation.xaml

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,37 @@
1212
d:DesignWidth="400">
1313

1414
<Control.Resources>
15-
<DataTemplate x:Key="NormalMessageTemplate" x:DataType="models:SignalMessage">
16-
<local:Message></local:Message>
17-
</DataTemplate>
18-
<DataTemplate x:Key="UnreadMarkerTemplate">
19-
<local:UnreadMarker />
20-
</DataTemplate>
15+
<Style TargetType="ListBoxItem" x:Key="NormalMessageStyle">
16+
<Setter Property="Template">
17+
<Setter.Value>
18+
<ControlTemplate TargetType="ListBoxItem">
19+
<local:Message x:Name="ListBoxItemContent" />
20+
</ControlTemplate>
21+
</Setter.Value>
22+
</Setter>
23+
</Style>
24+
<Style TargetType="ListBoxItem" x:Key="UnreadMarkerStyle">
25+
<Setter Property="Template">
26+
<Setter.Value>
27+
<ControlTemplate TargetType="ListBoxItem">
28+
<local:UnreadMarker />
29+
</ControlTemplate>
30+
</Setter.Value>
31+
</Setter>
32+
</Style>
33+
<Style TargetType="ListBoxItem" x:Key="IdentityKeyChangeStyle">
34+
<Setter Property="Template">
35+
<Setter.Value>
36+
<ControlTemplate TargetType="ListBoxItem">
37+
<local:IdentityKeyChangeMessage />
38+
</ControlTemplate>
39+
</Setter.Value>
40+
</Setter>
41+
</Style>
2142
<DataTemplate x:Key="IdentityKeyChangeTemplate">
2243
<local:IdentityKeyChangeMessage />
2344
</DataTemplate>
24-
<local:MessageTemplateSelector x:Key="MessageDataTemplateSelector" NormalMessage="{StaticResource NormalMessageTemplate}" UnreadMarker="{StaticResource UnreadMarkerTemplate}" IdentityKeyChangeMessage="{StaticResource IdentityKeyChangeTemplate}" />
45+
<local:MessageStyleSelector x:Key="MessageDataStyleSelector" NormalMessage="{StaticResource NormalMessageStyle}" UnreadMarker="{StaticResource UnreadMarkerStyle}" IdentityKeyChangeMessage="{StaticResource IdentityKeyChangeStyle}" />
2546
</Control.Resources>
2647
<Grid>
2748
<Grid.RowDefinitions>
@@ -36,19 +57,7 @@
3657
<TextBlock Name="Username" IsTextSelectionEnabled="True" HorizontalAlignment="Center" Text="{x:Bind ThreadUsername, Mode=OneWay}" Visibility="{x:Bind ThreadUsernameVisibility, Mode=OneWay}" />
3758
</StackPanel>
3859
</Border>
39-
<ListBox Grid.Row="1" Name="ConversationItemsControl" VirtualizingStackPanel.VirtualizationMode="Recycling" Background="White" ScrollViewer.VerticalScrollBarVisibility="Visible" Padding="0 0 15 0"> <!--ItemTemplateSelector="{StaticResource MessageDataTemplateSelector}"-->
40-
<ListBox.ItemContainerStyle>
41-
<Style TargetType="ListBoxItem">
42-
<Setter Property="Template">
43-
<Setter.Value>
44-
<ControlTemplate TargetType="ListBoxItem">
45-
<local:Message x:Name="ListBoxItemContent" />
46-
</ControlTemplate>
47-
</Setter.Value>
48-
</Setter>
49-
</Style>
50-
</ListBox.ItemContainerStyle>
51-
</ListBox>
60+
<ListBox Grid.Row="1" Name="ConversationItemsControl" VirtualizingStackPanel.VirtualizationMode="Recycling" Background="White" ScrollViewer.VerticalScrollBarVisibility="Visible" Padding="0 0 15 0" ItemContainerStyleSelector="{StaticResource MessageDataStyleSelector}" />
5261
<TextBox Grid.Row="2" Name="InputTextBox" VerticalAlignment="Bottom" KeyDown="TextBox_KeyDown"></TextBox>
5362
</Grid>
5463
</UserControl>

Signal-Windows/Controls/Conversation.xaml.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,13 @@ public class SignalUnreadMarker
211211
{
212212
public UnreadMarker View { get; set; }
213213
}
214-
public class MessageTemplateSelector : DataTemplateSelector
214+
public class MessageStyleSelector : StyleSelector
215215
{
216-
public DataTemplate NormalMessage { get; set; }
217-
public DataTemplate UnreadMarker { get; set; }
218-
public DataTemplate IdentityKeyChangeMessage { get; set; }
216+
public Style NormalMessage { get; set; }
217+
public Style UnreadMarker { get; set; }
218+
public Style IdentityKeyChangeMessage { get; set; }
219219

220-
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
220+
protected override Style SelectStyleCore(object item, DependencyObject container)
221221
{
222222
FrameworkElement element = container as FrameworkElement;
223223
if (item is SignalMessageContainer)

0 commit comments

Comments
 (0)