Mini Kabibi Habibi
<view:ViewBase x:Class="DevExpress.MailClient.Xpf.View.MailList"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:dxre="http://schemas.devexpress.com/winfx/2008/xaml/richedit"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:view="clr-namespace:DevExpress.MailClient.Xpf.View"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1000">
<view:ViewBase.Resources>
<dxre:HtmlToContentConverter x:Key="HtmlToContentConverter"/>
<dx:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
<dx:BoolToVisibilityInverseConverter x:Key="BoolToVisibilityInverseConverter"/>
<view:CurrentRowToOpacityConverter x:Key="CurrentRowToOpacityConverter"/>
</view:ViewBase.Resources>
<dxb:BarManager>
<dxb:BarManager.Items>
<dxb:BarButtonItem Content="New Mail" Command="{Binding Commands.NewMessage}" x:Name="bNewMail" Glyph="/DevExpress.MailClient.Xpf;component/Images/NewMail_16x16.png" LargeGlyph="/DevExpress.MailClient.Xpf;component/Images/NewMail_32x32.png" />
<dxb:BarButtonItem Content="Reply" Command="{Binding Commands.Reply}" x:Name="bReplay" RibbonStyle="SmallWithText" Glyph="/DevExpress.MailClient.Xpf;component/Images/Reply_16x16.png" />
<dxb:BarButtonItem Content="Reply All" Command="{Binding Commands.ReplyAll}" x:Name="bReplayAll" RibbonStyle="SmallWithText" Glyph="/DevExpress.MailClient.Xpf;component/Images/ReplyAll_16x16.png" />
<dxb:BarButtonItem Content="Forward" Command="{Binding Commands.Forward}" x:Name="bForward" RibbonStyle="SmallWithText" Glyph="/DevExpress.MailClient.Xpf;component/Images/Forward_16x16.png" />
<dxb:BarButtonItem Content="Delete" Command="{Binding Commands.Delete}" x:Name="bDelete" Glyph="/DevExpress.MailClient.Xpf;component/Images/Delete_16x16.png" LargeGlyph="/DevExpress.MailClient.Xpf;component/Images/Delete_32x32.png" />
<dxb:BarButtonItem Content="Unread/Read" Command="{Binding Commands.ChangeUnreadStatus}" x:Name="bUnreadRead" Glyph="/DevExpress.MailClient.Xpf;component/Images/Mail_16x16.png" LargeGlyph="/DevExpress.MailClient.Xpf;component/Images/Mail_32x32.png" RibbonStyle="SmallWithText" />
<dxb:BarButtonItem Content="Low priority" Command="{Binding Commands.SetLowPriority}" x:Name="bLowPriority" Glyph="/DevExpress.MailClient.Xpf;component/Images/Mail/Low.png" />
<dxb:BarButtonItem Content="Medium priority" Command="{Binding Commands.SetMediumPriority}" x:Name="bMediumPriority"/>
<dxb:BarButtonItem Content="High priority" Command="{Binding Commands.SetHighPriority}" x:Name="bHighPriority" Glyph="/DevExpress.MailClient.Xpf;component/Images/Mail/High.png" />
<dxb:BarSubItem Content="Priority" x:Name="bPriority" Glyph="/DevExpress.MailClient.Xpf;component/Images/Priority_16x16.png">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="bLowPriority"/>
<dxb:BarButtonItemLink BarItemName="bMediumPriority"/>
<dxb:BarButtonItemLink BarItemName="bHighPriority"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem Content="Change Layout" Command="{Binding Commands.ChangeLayout}" x:Name="bChangeLayout" Glyph="/DevExpress.MailClient.Xpf;component/Images/LayoutRotate_16x16.png" LargeGlyph="/DevExpress.MailClient.Xpf;component/Images/LayoutRotate_32x32.png" />
</dxb:BarManager.Items>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<dxr:RibbonControl x:Name="mailRibbonControl">
<dxr:RibbonDefaultPageCategory Caption="Default Category">
<dxr:RibbonPage Caption="Mail" MergeOrder="-2">
<dxr:RibbonPageGroup Caption="New/Respond">
<dxb:BarButtonItemLink BarItemName="bNewMail" />
<dxb:BarButtonItemLink BarItemName="bReplay" />
<dxb:BarButtonItemLink BarItemName="bReplayAll" />
<dxb:BarButtonItemLink BarItemName="bForward" />
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup Caption="Delete">
<dxb:BarButtonItemLink BarItemName="bDelete" />
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup Caption="Tags">
<dxb:BarButtonItemLink BarItemName="bUnreadRead" />
<dxb:BarSubItemLink BarItemName="bPriority" />
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup Caption="Layout">
<dxb:BarButtonItemLink BarItemName="bChangeLayout" />
</dxr:RibbonPageGroup>
</dxr:RibbonPage>
</dxr:RibbonDefaultPageCategory>
</dxr:RibbonControl>
<dxlc:LayoutControl Grid.Row="1" Orientation="{Binding LayoutOrientation}" StretchContentVertically="True" StretchContentHorizontally="True" Padding="0" Margin="0">
<dxg:GridControl x:Name="grid" Margin="0,0,4,0" ItemsSource="{Binding ItemsSource}" SelectedItem="{Binding Path=CurrentMessage, Mode=TwoWay}" CustomColumnDisplayText="grid_CustomColumnDisplayText" AutoExpandAllGroups="True">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Priority" Width="20" AllowResizing="False">
<dxg:GridColumn.HeaderTemplate>
<DataTemplate>
<Image Stretch="None" Width="13" Height="13" VerticalAlignment="Center" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/High.png">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
</DataTemplate>
</dxg:GridColumn.HeaderTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center">
<Image Stretch="None" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/High.png">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
<Image.Visibility>
<Binding Path="RowData.Row.Priority">
<Binding.Converter>
<view:PriorityToVisibilityConverter VisiblePriority="High"/>
</Binding.Converter>
</Binding>
</Image.Visibility>
</Image>
<Image Stretch="None" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/Low.png">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
<Image.Visibility>
<Binding Path="RowData.Row.Priority">
<Binding.Converter>
<view:PriorityToVisibilityConverter VisiblePriority="Low"/>
</Binding.Converter>
</Binding>
</Image.Visibility>
</Image>
</StackPanel>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="IsUnread" Width="40" AllowResizing="False">
<dxg:GridColumn.HeaderTemplate>
<DataTemplate>
<Image Stretch="None" Width="13" Height="13" VerticalAlignment="Center" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/IsUnreadHeader.png">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
</DataTemplate>
</dxg:GridColumn.HeaderTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center">
<Image Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/Read.png" Visibility="{Binding Path=RowData.Row.IsUnread, Converter={StaticResource BoolToVisibilityInverseConverter}}">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
<Image Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/Unread.png" Visibility="{Binding Path=RowData.Row.IsUnread, Converter={StaticResource BoolToVisibilityConverter}}">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
</StackPanel>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="HasAttachment" Width="40" AllowResizing="False">
<dxg:GridColumn.HeaderTemplate>
<DataTemplate>
<Image Stretch="None" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/Attachment.png">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
</DataTemplate>
</dxg:GridColumn.HeaderTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Image Stretch="None" Width="13" Height="13" Source="/DevExpress.MailClient.Xpf;component/Images/Mail/Attachment.png" Visibility="{Binding Path=RowData.Row.HasAttachment, Converter={StaticResource BoolToVisibilityConverter}}">
<RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
</Image>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Subject" Header="Subject" ColumnFilterMode="DisplayText"/>
<dxg:GridColumn FieldName="From" Header="From" Width="70"/>
<dxg:GridColumn FieldName="To" Header="To" Width="45"/>
<dxg:GridColumn FieldName="Date" Header="Date" Width="85" GroupIndex="0" SortOrder="Descending" GroupInterval="DateRange"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView x:Name="view" HeaderPanelMinHeight="24" RowMinHeight="22" AutoWidth="True" ShowSearchPanelMode="Always" ShowGroupedColumns="True" AllowEditing="False" NavigationStyle="Row" ShowVerticalLines="False" RowDoubleClick="view_RowDoubleClick">
<dxg:TableView.CellStyle>
<Style TargetType="{x:Type dxg:CellContentPresenter}">
<Setter Property="FontWeight">
<Setter.Value>
<Binding Path="RowData.Row.IsUnread">
<Binding.Converter>
<dx:BoolToObjectConverter TrueValue="Bold" FalseValue="Normal"/>
</Binding.Converter>
</Binding>
</Setter.Value>
</Setter>
</Style>
</dxg:TableView.CellStyle>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
<Grid Margin="4,0,0,0" MinWidth="300" dxlc:LayoutControl.AllowHorizontalSizing="True" dxlc:LayoutControl.AllowVerticalSizing="True">
<TextBlock Text="No email selected" FontFamily="Segoe UI" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="0.5"/>
<Grid x:Name="contentGrid">
<Grid.Visibility>
<Binding Path="CurrentMessage">
<Binding.Converter>
<dx:ObjectToVisibilityConverter HandleList="False"/>
</Binding.Converter>
</Binding>
</Grid.Visibility>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="Black" Background="White">
<ContentControl Foreground="Black">
<Grid Opacity="{Binding Path=SelectedItem, ElementName=grid, Converter={StaticResource CurrentRowToOpacityConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="{Binding Path=CurrentMessage.Subject}" FontSize="18" FontWeight="Bold" TextWrapping="Wrap" Margin="4,0,0,8"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="From:" FontSize="11" TextWrapping="Wrap" Margin="4,0,4,2"/>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=CurrentMessage.From}" Margin="4,0,0,2" FontSize="11" TextWrapping="Wrap"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="To:" FontSize="11" TextWrapping="Wrap" Margin="4,0,4,1"/>
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=CurrentMessage.To}" FontSize="11" Margin="4,0,0,2" TextWrapping="Wrap"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Date:" FontSize="11" TextWrapping="Wrap" Margin="4,0,4,4"/>
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Path=CurrentMessage.Date}" FontSize="11" Margin="4,0,0,4" TextWrapping="Wrap"/>
</Grid>
</ContentControl>
</Border>
<dxre:RichEditControl x:Name="richEditControl" ReadOnly="True" Grid.Row="1" ActiveViewType="Simple" ShowBorder="False" HorizontalScrollBarVisibility="Collapsed" Content="{Binding Path=CurrentMessage.Text, Converter={StaticResource HtmlToContentConverter}}"/>
</Grid>
</Grid>
</dxlc:LayoutControl>
</Grid>
</dxb:BarManager>
</view:ViewBase>