Files
polychat/PolyChat/MainPage.xaml
2021-09-21 09:28:29 +02:00

115 lines
6.1 KiB
XML

<Page
x:Class="PolyChat.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="using:PolyChat.Models"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="224"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- LEFT SIDE -->
<Grid Grid.Column="0" Margin="16">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- CONNECTION HEADER -->
<StackPanel HorizontalAlignment="Stretch">
<Grid Margin="0 0 0 8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="0 0 8 0" Text="Connect to"/>
<TextBlock x:Name="ipAddress" Grid.Column="1"/>
</Grid>
<TextBox x:Name="inputUsername" Header="Displayed Name" PlaceholderText="Robert Bosch" Margin="0 0 0 8"/>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="My Chats" VerticalAlignment="Center"/>
<Button Grid.Column="1" Click="OnOpenNewChatDialog" Content="New"/>
</Grid>
</StackPanel>
<!-- CHATS LIST -->
<ScrollViewer Grid.Row="1" HorizontalAlignment="Stretch" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden">
<ListView x:Name="listViewPartners" ItemsSource="{x:Bind Partners}" HorizontalAlignment="Stretch" Margin="0 8 0 0">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:ChatPartner">
<RadioButton GroupName="chatSelect" Tag="{x:Bind Code}" HorizontalAlignment="Stretch" Height="64" Checked="OnChatPartnerSelected">
<StackPanel x:Name="ChatPartner" VerticalAlignment="Center" HorizontalAlignment="Stretch">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock HorizontalAlignment="Stretch" Text="{x:Bind Name}"/>
<TextBlock Text=" ("/>
<TextBlock Text="{x:Bind Code}"/>
<TextBlock Text=")"/>
</StackPanel>
<!--
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock HorizontalAlignment="Stretch" Text="{x:Bind Messages.Last().toString()}"/>
<TextBlock Text="{x:Bind Messages.Last().Date}"/>
</StackPanel>
-->
</StackPanel>
</RadioButton>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>
</Grid>
<!-- RIGHT SIDE -->
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="64"/>
<RowDefinition Height="*"/>
<RowDefinition Height="64"/>
</Grid.RowDefinitions>
<!-- CHAT HEADER LEFT & RIGHT -->
<Grid Padding="16 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="selectedPartnerName" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Column="1">
<Button Click="OnDeleteChat" Content="Delete Chat"/>
</StackPanel>
</Grid>
<!-- CHAT -->
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden">
<ListView x:Name="listViewMessages" VerticalAlignment="Bottom" Margin="4 16">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:ChatMessage">
<StackPanel x:Name="Message" Margin="0 4" Padding="16 8" CornerRadius="4" Background="{ThemeResource SystemAccentColor}">
<TextBlock Text="{x:Bind Msg}"/>
<TextBlock Text="{x:Bind StringTimeStamp}"/>
<TextBlock Text="{x:Bind Foreign}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>
<!-- CHAT INPUT & SEND -->
<Grid Grid.Row="2" Margin="16 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="inputSend" KeyDown="OnKeyDown" PlaceholderText="My message" VerticalAlignment="Center"/>
<StackPanel Orientation="Horizontal" Grid.Column="1">
<Button Content="Send" Click="OnSendMessage"/>
</StackPanel>
</Grid>
</Grid>
</Grid>
</Page>