342 lines
20 KiB
XML
342 lines
20 KiB
XML
<Window x:Class="BeWo.View.ChatView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:view="clr-namespace:BeWo.View"
|
|
Title="Chat View" WindowStartupLocation="CenterScreen" WindowStyle="None"
|
|
AllowsTransparency="True"
|
|
Background="Transparent"
|
|
ResizeMode="CanResizeWithGrip"
|
|
x:Name="ChatViewName"
|
|
StateChanged="ChatView_OnStateChanged"
|
|
>
|
|
|
|
<GroupBox Header="Chat" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
|
|
<Grid Background="{StaticResource ObjectEditBackgroundBrush}" >
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2.12*"/>
|
|
<ColumnDefinition Width="7.88*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="10*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
<!-- ########################## Linkes panel ########################### -->
|
|
<Grid Grid.Column="0" Grid.Row="0" >
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="0.80*"/>
|
|
<RowDefinition Height="9.20*"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="10*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid Grid.Column="0" Grid.Row="0" >
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="5.25*"/>
|
|
<RowDefinition Height="4.75*"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="10*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Left" >
|
|
<Label Content="Mein Status: " MaxWidth="80"/>
|
|
<RadioButton GroupName="status" x:Name="RadioButtonOnline" BorderBrush="Green" MaxWidth="15" ToolTip="Online" VerticalAlignment="Center" Checked="ComboBox_SelectionChanged" Foreground="Green"/>
|
|
<RadioButton GroupName="status" x:Name="RadioButtonOffline" BorderBrush="Red" MaxWidth="15" ToolTip="Offline" VerticalAlignment="Center" Checked="ComboBox_SelectionChanged" Foreground="Red"/>
|
|
<RadioButton GroupName="status" x:Name="RadioButtonBeschaeftigt" BorderBrush="DarkOrange" MaxWidth="15" ToolTip="Beschäftigt" VerticalAlignment="Center" Checked="ComboBox_SelectionChanged" Foreground="DarkOrange"/>
|
|
</StackPanel>
|
|
|
|
|
|
<StackPanel Grid.Row="0" MaxWidth="20" HorizontalAlignment="Right" Orientation="Horizontal" VerticalAlignment="Bottom" >
|
|
<Button Style="{DynamicResource IconButtonStyle}" x:Name="ButtonSortLabel" Background="Transparent" BorderBrush="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" Width="20" Height="20" Click="ButtonSortLabel_OnClick" >
|
|
<Image x:Name="SortLabel" ToolTip="Sortierung ändern" Source="pack://application:,,,/Ressources/icons/unsortiert.png" />
|
|
</Button>
|
|
</StackPanel>
|
|
|
|
<TextBox x:Name="Suche" Grid.Column="0" Margin="3,1,3,3" MinHeight="25" VerticalContentAlignment="Center" KeyDown="Suche_OnKeyDown" Grid.Row="1" TextChanged="Suche_OnTextChanged" LostFocus="Suche_OnLostFocus" VerticalAlignment="Bottom" ToolTip="Suchen Sie hier nach einem User in der Liste">
|
|
<TextBox.Resources>
|
|
<Style TargetType="{x:Type Border}">
|
|
<Setter Property="CornerRadius" Value="3"/>
|
|
<Setter Property="Padding" Value="5,0,0,0" />
|
|
</Style>
|
|
</TextBox.Resources>
|
|
</TextBox>
|
|
</Grid>
|
|
|
|
|
|
|
|
<Grid Grid.Column="0" Grid.Row="1" >
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="1*"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="10*"/>
|
|
|
|
</Grid.ColumnDefinitions>
|
|
<!--###################################### Liste aller User mit Chat Berechtigung ###################################################### -->
|
|
<ListView x:Name="Clientlist" HorizontalAlignment="Stretch" Grid.Row="0" Grid.Column="0" VerticalAlignment="Stretch" Margin="3" SelectionChanged="ListBoxSelectedIndexChanged" Style="{DynamicResource ResourceKey=styleListBox}" ItemTemplate="{DynamicResource DataTemplate1}" >
|
|
<ListView.Resources>
|
|
<DataTemplate x:Key="DataTemplate1">
|
|
<Grid Margin="7,0,0,0" x:Name="GridMargin">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="35"/>
|
|
<ColumnDefinition Width="7"/>
|
|
<ColumnDefinition Width="100"/>
|
|
<ColumnDefinition Width="25"/>
|
|
<ColumnDefinition Width="12"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Border BorderThickness="0.25" CornerRadius="3" Grid.RowSpan="2" Grid.ColumnSpan="5" Background="White" >
|
|
<Border.BorderBrush>
|
|
<SolidColorBrush Color="Black" />
|
|
</Border.BorderBrush>
|
|
</Border>
|
|
|
|
<Ellipse Width='30' Height='30' RenderOptions.BitmapScalingMode="HighQuality">
|
|
<Ellipse.Fill>
|
|
<ImageBrush ImageSource='{Binding Image}' Stretch='Fill' RenderOptions.BitmapScalingMode="HighQuality" />
|
|
</Ellipse.Fill>
|
|
|
|
</Ellipse>
|
|
|
|
<StackPanel Grid.Column="1" Height="30" >
|
|
<Ellipse Width='7' Height='7' Fill="{Binding Path=Color}" Margin="-23,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Stretch="Fill" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="2" Margin="5" >
|
|
<StackPanel Orientation="Horizontal" TextBlock.FontWeight="Bold" >
|
|
<TextBlock Text="{Binding Path=Name, FallbackValue=FirstName}" />
|
|
</StackPanel>
|
|
<!-- <TextBlock Text="{Binding Path=StatusTyp, FallbackValue=Message}" />-->
|
|
</StackPanel>
|
|
|
|
<!--Für die anzeige der anzahl ungelesener Nachrichten Height="30"-->
|
|
<StackPanel Grid.Column="3" Margin="5">
|
|
<TextBlock Text="{Binding Path=Receivems}" FontWeight="Bold" Foreground="Black" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="4" Margin="7,0,0,0">
|
|
<Rectangle Fill="{Binding Path=ColorType}" Stretch="Fill" Height="30" Width="2" />
|
|
</StackPanel>
|
|
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListView.Resources>
|
|
|
|
<!--Uberschríft Mitarbeiter, ItemCount-->
|
|
<ListView.GroupStyle>
|
|
<GroupStyle>
|
|
<GroupStyle.ContainerStyle>
|
|
<Style TargetType="{x:Type GroupItem}">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate>
|
|
<Expander IsExpanded="True">
|
|
<Expander.Header>
|
|
<StackPanel Orientation="Horizontal" >
|
|
<TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="Black" FontSize="18" VerticalAlignment="Bottom" Width="148" />
|
|
<TextBlock Text="{Binding ItemCount}" FontSize="12" Foreground="Black" FontWeight="Bold" Margin="10,0,0,1" VerticalAlignment="Bottom" HorizontalAlignment="Right" />
|
|
</StackPanel>
|
|
</Expander.Header>
|
|
<ItemsPresenter />
|
|
</Expander>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</GroupStyle.ContainerStyle>
|
|
</GroupStyle>
|
|
</ListView.GroupStyle>
|
|
|
|
<!-- <ListView.ItemContainerStyle>
|
|
<Style TargetType="ListViewItem">
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="White" />
|
|
<Setter Property="BorderBrush" Value="Transparent" />
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</ListView.ItemContainerStyle> -->
|
|
</ListView>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- ####################### Rechtes Panel ################################-->
|
|
<Grid Grid.Column="1" Grid.Row="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="10*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="0.80*"/>
|
|
<RowDefinition Height="8.45*" />
|
|
<RowDefinition Height="0.75*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
<ListBox x:Name="AktChatUser" HorizontalAlignment="Left" Grid.Row="0" Background="Transparent" BorderBrush="Transparent" VerticalAlignment="Bottom" ItemTemplate="{DynamicResource DataTemplate2}" MouseDoubleClick="AktChatUser_OnMouseDoubleClick" >
|
|
<ListBox.Resources>
|
|
<DataTemplate x:Key="DataTemplate2">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="50"/>
|
|
<ColumnDefinition Width="100"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="10*" />
|
|
</Grid.RowDefinitions>
|
|
<!-- <Border Margin="5" BorderBrush="DarkGray" BorderThickness="1"> -->
|
|
<Ellipse Width='30' Height='30' VerticalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality">
|
|
<Ellipse.Fill >
|
|
<ImageBrush ImageSource='{Binding Image}' Stretch='Fill'/>
|
|
</Ellipse.Fill>
|
|
</Ellipse>
|
|
<!-- <Image Source="{Binding Path=Image}" Stretch="Fill" Width="30" Height="30" />-->
|
|
<!-- </Border> -->
|
|
<StackPanel Grid.Column="1" Margin="5" VerticalAlignment="Center">
|
|
<StackPanel Orientation="Horizontal" TextBlock.FontWeight="Bold" >
|
|
|
|
<TextBlock Text="{Binding Path=Name, FallbackValue=FirstName}" />
|
|
</StackPanel>
|
|
<!-- <TextBlock Text="{Binding Path=StatusTyp, FallbackValue=Message}" />-->
|
|
</StackPanel>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.Resources>
|
|
</ListBox>
|
|
|
|
<Button Style="{DynamicResource IconButtonStyle}" x:Name="ButtonAlarmLabel" Grid.Row="0" Background="Transparent" BorderBrush="Transparent" HorizontalAlignment="Right" Height="20" Margin="0,-31,40,0" VerticalAlignment="Top" Width="20" Visibility="Collapsed" >
|
|
<Image x:Name="AlarmLabel" ToolTip="Zurzeit nicht Verbunden" Source="" />
|
|
</Button>
|
|
|
|
<!--####################### Media Gedöns ###############################################################-->
|
|
<Grid Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="3">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="35"/>
|
|
<ColumnDefinition Width="125"/>
|
|
<ColumnDefinition Width="55"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Button Grid.Column="0" PreviewMouseDown="Sound_OnPreviewMouseDown" PreviewMouseUp="Sound_OnPreviewMouseUp" HorizontalAlignment="Center" Margin="1" Width="30" Visibility="Collapsed">
|
|
<Image x:Name="SmileySound" ToolTip="Sound Aufnehmen und verschicken" Source="/BeWoPlaner;component/Ressources/Icons/glucklicher.png" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" />
|
|
</Button>
|
|
<Button Content="Media" Grid.Column="2" Click="MediaBase_OnClick" HorizontalAlignment="Center" Width="50" Margin="1" />
|
|
<Button Content="Video Chatten" Grid.Column="1" Click="ButtonVideoChat_OnClick" HorizontalAlignment="Center" Width="120" Margin="1" Visibility="Collapsed"/>
|
|
</Grid>
|
|
|
|
|
|
<ListBox x:Name="Chat" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="3" Grid.Row="1" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" SelectionMode="Extended" MouseRightButtonDown="OnRightClickEvent" >
|
|
<ListBox.ItemContainerStyle>
|
|
<Style TargetType="ListBoxItem">
|
|
<Setter Property="HorizontalAlignment" Value="{Binding Posi}" />
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
<ListBox.Resources>
|
|
<Style TargetType="Border">
|
|
<Setter Property="CornerRadius" Value="3" />
|
|
<Setter Property="Padding" Value="10,0,0,0" />
|
|
</Style>
|
|
</ListBox.Resources>
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
|
|
<StackPanel>
|
|
|
|
<!--Lade Weitere Nachrichten anzeige -->
|
|
<StackPanel Visibility="{Binding LoadNextVisibility}" >
|
|
<Image ToolTip="Weitere Nachrichten Laden" Source="/BeWoPlaner;component/Ressources/Icons/WeitereNachrichtLaden.png" Width="25" Height="25" Stretch="Uniform" RenderOptions.BitmapScalingMode="HighQuality" VerticalAlignment="Center" Tag="{Binding LoadObject}" HorizontalAlignment="Center" MouseDown="WeitereNachrichten_OnMouse" />
|
|
</StackPanel>
|
|
|
|
|
|
<Border BorderBrush="{Binding ChatColor}" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8" Background="{Binding ChatColor}" Visibility="{Binding MainVisibility}" >
|
|
<DockPanel MinHeight="15" Margin="5" LastChildFill="True" Background="{Binding ChatColor}" Visibility="{Binding MainVisibility}" >
|
|
|
|
<StackPanel DockPanel.Dock="Bottom" Visibility="{Binding ChatVisibility}" >
|
|
<TextBlock VerticalAlignment="Center" Text="{Binding UserMessage}" MinWidth="0" MaxWidth="500" TextWrapping="Wrap" />
|
|
</StackPanel>
|
|
|
|
|
|
<!--Herunterlade bereich wird nicht genutzt weg damit ?-->
|
|
<DockPanel DockPanel.Dock="Bottom" Visibility="{Binding Herunterladen}" >
|
|
<Grid >
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="25" />
|
|
<RowDefinition Height="25" />
|
|
</Grid.RowDefinitions>
|
|
<!-- Name Der Datei -->
|
|
<TextBlock Text="{Binding UserMessage}" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
|
<!-- Herunterlade Button -->
|
|
<Button Content="Herunterladen" Grid.Row="1" ToolTip="Datei Herunterladen" HorizontalAlignment="Center" VerticalAlignment="Center" Width="125" Height="25" Tag="{Binding Herunterladbares}" Click="DatenRunterladen_OnClick" />
|
|
</Grid>
|
|
</DockPanel>
|
|
<!-- #++++++++++++++++++++++++++++++++++++++++++++++# -->
|
|
|
|
<!-- Bild bereich-->
|
|
<DockPanel DockPanel.Dock="Bottom" Visibility="{Binding PictureVisibility}" >
|
|
<Image Stretch="Uniform" MaxHeight="200" MaxWidth="300" Source="{Binding ImageSources}" RenderOptions.BitmapScalingMode="HighQuality" />
|
|
</DockPanel>
|
|
|
|
<!--Dokument bereich -->
|
|
<DockPanel DockPanel.Dock="Bottom" Visibility="{Binding DokumentVisibility}" >
|
|
<Button HorizontalAlignment="Center" VerticalAlignment="Center" Click="OpenDokument_OnClick" Height="25" Width="25" Tag="{Binding Dokpfad}" >
|
|
<Image ToolTip="Dokument öffnen" Source="/BeWoPlaner;component/Ressources/Icons/ClipboardDisabled.png" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
|
</Button>
|
|
<TextBlock Margin="2,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding UserMessage}"/>
|
|
</DockPanel>
|
|
|
|
<StackPanel DockPanel.Dock="Left" Margin="0,0,0,5" >
|
|
<TextBlock Text="{Binding Username}" FontWeight="Bold" MaxWidth="150" HorizontalAlignment="Left" TextAlignment="Left" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel DockPanel.Dock="Right" Margin="5,0,0,5" >
|
|
<TextBlock Text="{Binding SendTime}" MaxWidth="350" HorizontalAlignment="Right" TextAlignment="Right" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
</DockPanel>
|
|
</Border>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
|
|
|
|
<Grid Grid.Row="2" Margin="3,0,3,3" >
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="8.5*"/>
|
|
<ColumnDefinition Width=".5*"/>
|
|
<ColumnDefinition Width="1*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="10*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
<TextBox x:Name="Chatbox" HorizontalAlignment="Stretch" Grid.Column="0" TextWrapping="Wrap" Text="Nachricht schreiben" VerticalScrollBarVisibility="Auto" MaxLines="5" MaxHeight="70"
|
|
VerticalContentAlignment="Center" MinHeight="25" ToolTip="Schreiben Sie hier eine Nachricht hinein" KeyDown="OnKeyDownHandler" GotFocus="OnFocus" Foreground="DarkGray" VerticalAlignment="Bottom" >
|
|
<TextBox.Resources>
|
|
<Style TargetType="{x:Type Border}">
|
|
<Setter Property="CornerRadius" Value="3"/>
|
|
<Setter Property="Padding" Value="10,0,0,0" />
|
|
</Style>
|
|
</TextBox.Resources>
|
|
</TextBox>
|
|
|
|
<Button HorizontalAlignment="Stretch" x:Name="EmojiButton" Margin="2,0,0,0" Grid.Column="1" VerticalAlignment="Bottom" Click="SmileyButton_OnClick">
|
|
<Image x:Name="Smiley" ToolTip="Smiley einfügen" Source="/BeWoPlaner;component/Ressources/Icons/glucklicher.png" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" />
|
|
</Button>
|
|
|
|
<Button x:Name="SendButton" Content="Senden" HorizontalAlignment="Stretch" Margin="2,0,0,0" Grid.Column="2" VerticalAlignment="Bottom" Click="SendButton_Click" />
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</GroupBox>
|
|
</Window>
|
|
|
|
|