Files
BeWoPlaner/BeWo/Scheduling/View/SchedulingView.xaml
Lyndon Jetten e0447d0a05 MoK:
Intervallfinder überarbeitet & Bug gefixt, der zu einem Fehler beim Suchen nach freien Intervallen über mehrere Tage geführt hatte, wenn die Enduhrzeit vor der Startuhrzeit lag.

Berichte mit Parametern.

Verbesserte Mitarbeiter-, Klienten-, Team-, und Organisationsdropdowns mit Suche.

Quittierungsbelegresultate (zum Unterschreiben) wird wie die Zeiterfassung paginiert.

FaC:

neuer Kalender noch nicht fertig.
2024-11-12 18:37:23 +01:00

994 lines
85 KiB
XML

<localView:BeWoView x:Class="BeWo.Scheduling.View.SchedulingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BeWo.Scheduling.View"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:converter="clr-namespace:BeWo.Scheduling.Converter"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:view="clr-namespace:BeWo.Scheduler.View"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
xmlns:converter1="clr-namespace:BeWo.Scheduler.Converter"
xmlns:viewModel="clr-namespace:BeWo.Scheduling.ViewModel"
xmlns:dxschv="http://schemas.devexpress.com/winfx/2008/xaml/scheduling/visual"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:schedulingUtils="clr-namespace:BeWo.Scheduling.SchedulingUtils"
mc:Ignorable="d"
Width="Auto" Height="Auto"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="true">
<localView:BeWoView.Resources>
<ResourceDictionary>
<converter:SchedulingCheckBoxConverter x:Key="CheckBoxConverter" />
<converter1:NewCalendarBackgroundConverter x:Key="NewCalendarBackgroundConverter" />
<view:TextFromIDataContractConverter x:Key="TextFromIDataContractConverter" />
<converter:WidthAdditionMultiConverter x:Key="WidthAdditionMultiConverter" />
<converter:EmployeeBackgroundColorConverter x:Key="EmployeeBackgroundColorConverter" />
<converter:DayViewDayCountVisibilityConverter x:Key="DayViewDayCountVisibilityConverter" />
<converter:EmployeeListConfirmationToolTipConverter x:Key="EmployeeListConfirmationToolTipConverter" />
<converter:InfoButtonVisibilityConverter x:Key="InfoButtonVisibilityConverter" />
<converter:AppointmentBorderThicknessConverter x:Key="AppointmentBorderThicknessConverter" />
<Style x:Key="MultiElementSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border CornerRadius="5" MinHeight="25" Background="{Binding Converter={StaticResource NewCalendarBackgroundConverter}}" />
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="25" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" Grid.Column="0" Text="{Binding Converter={StaticResource TextFromIDataContractConverter}}" Margin="3,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<Border Width="15" Height="15" Grid.Column="1" Background="{Binding Path=FilterableBrush}" CornerRadius="3" />
<Button x:Name="RemoveElementButton" Grid.Column="2" Grid.RowSpan="2" Width="20" Height="20" ToolTip="Element aus der Liste entfernen" Tag="{Binding}" Style="{DynamicResource CloseButtonStyle}" Click="RemoveElementButton_OnClick" Margin="3,0,0,0" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MitarbeiterTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="12,2,12,2" RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource EmployeeContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource EmployeeContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="KlientenTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="12,2,12,2" RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource CustomerContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource CustomerContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RessourcenTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="0">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="12,2,12,2" RecognizesAccessKey="True" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource ResourceContentBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource ResourceContentBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="dxschv:DayAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:MonthAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AgendaAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:TimelineAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AllDayAppointmentControl">
<Setter Property="Padding" Value="0" />
</Style>
<Style TargetType="dxschv:AppointmentHorizontalControl">
<Setter Property="Padding" Value="0" />
</Style>
<DataTemplate x:Key="VerticalAppointmentControl.ContentTemplate">
<Border BorderThickness="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush, Converter={StaticResource AppointmentBorderThicknessConverter}}" BorderBrush="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush}" CornerRadius="2">
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
</Grid.ColumnDefinitions>
<!-- Mitarbeiterfarbe -->
<Border Grid.Column="0">
<Border.Background>
<MultiBinding Mode="OneWay" Converter="{StaticResource EmployeeBackgroundColorConverter}">
<Binding Path="DataContext.IsEmployeeBrushVisible" Mode="OneWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type localView:BeWoView}}" />
<Binding Path="Appointment.CustomFields[VMForCustomField].AppointmentColors.EmployeeBackground" />
<Binding Path="Appointment.CustomFields[VMForCustomField].BackgroundColor" />
</MultiBinding>
</Border.Background>
</Border>
<!-- /Mitarbeiterfarbe -->
<!-- Hauptteil mit Betreff und (Ort) -->
<dxschv:AppointmentContentPanel Grid.Column="1" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}">
<dxschv:AppointmentContentPanel.IntervalSubject>
<TextBlock Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}"
Text="{Binding Appointment.Subject}" Margin="3,3,0,0" FontWeight="Normal" />
</dxschv:AppointmentContentPanel.IntervalSubject>
<dxschv:AppointmentContentPanel.Location>
<TextBlock Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}"
Visibility="{Binding Appointment.Location, Converter={StaticResource ObjectVisibilityConverter}}"
Margin="3,3,0,0" FontWeight="Normal" Text="{Binding Appointment.Location, StringFormat={}({0})}" />
</dxschv:AppointmentContentPanel.Location>
<dxschv:AppointmentContentPanel.Images>
<dxschv:AppointmentImagesPanel Margin="0,0,0,3" VerticalAlignment="Stretch" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}" />
</dxschv:AppointmentContentPanel.Images>
</dxschv:AppointmentContentPanel>
<!-- /Hauptteil mit Betreff und (Ort) -->
<!-- Klientenfarbe & Ressourcenfarbe -->
<Border Grid.Column="2" Background="{Binding Appointment.CustomFields[VMForCustomField].AppointmentColors.ResourceAndCustomerBackground}" />
<!-- /Klientenfarbe & Ressourcenfarbe -->
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="HorizontalAppointmentControl.ContentTemplate">
<Border Margin="-6,0,0,0" BorderThickness="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush, Converter={StaticResource AppointmentBorderThicknessConverter}}" BorderBrush="{Binding Appointment.CustomFields[VMForCustomField].AppointmentBorderBrush}" CornerRadius="2">
<Grid Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
</Grid.ColumnDefinitions>
<!-- Mitarbeiterfarbe -->
<Border Grid.Column="0">
<Border.Background>
<MultiBinding Mode="OneWay" Converter="{StaticResource EmployeeBackgroundColorConverter}">
<Binding Path="DataContext.IsEmployeeBrushVisible" Mode="OneWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type localView:BeWoView}}" />
<Binding Path="Appointment.CustomFields[VMForCustomField].AppointmentColors.EmployeeBackground" />
<Binding Path="Appointment.CustomFields[VMForCustomField].BackgroundColor" />
</MultiBinding>
</Border.Background>
</Border>
<!-- /Mitarbeiterfarbe -->
<!-- Hauptteil mit Betreff und (Ort) -->
<dxschv:AppointmentContentPanel Grid.Column="1" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}" VerticalAlignment="Center">
<dxschv:AppointmentContentPanel.IntervalSubject>
<StackPanel Orientation="Horizontal">
<TextBlock Visibility="{Binding Appointment.AllDay, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}">
<Run Text="{Binding Appointment.Start, StringFormat={}{0:HH:mm}}" />
<Run Text="-" />
<Run Text="{Binding Appointment.End, StringFormat={}{0:HH:mm}}" />
</TextBlock>
<TextBlock Text="{Binding Appointment.Subject}" Margin="3,0,0,0" VerticalAlignment="Center" Foreground="{Binding Appointment.CustomFields[VMForCustomField].ForegroundColor}" />
</StackPanel>
</dxschv:AppointmentContentPanel.IntervalSubject>
<dxschv:AppointmentContentPanel.Images>
<dxschv:AppointmentImagesPanel Margin="0,3,3,0" Background="{Binding Appointment.CustomFields[VMForCustomField].BackgroundColor}" />
</dxschv:AppointmentContentPanel.Images>
</dxschv:AppointmentContentPanel>
<!-- /Hauptteil mit Betreff und (Ort) -->
<!-- Klientenfarbe & Ressourcenfarbe -->
<Border Grid.Column="2" Background="{Binding Appointment.CustomFields[VMForCustomField].AppointmentColors.ResourceAndCustomerBackground}"/>
<!-- /Klientenfarbe & Ressourcenfarbe -->
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="MyImageBox">
<Image Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].HasServiceRecordEntry, Converter={StaticResource BoolVisibilityConverter}}"
Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png" SnapsToDevicePixels="True" Height="17" Width="17" />
</DataTemplate>
<Style x:Key="AppointmentStyle" TargetType="dxschv:AppointmentControl">
<Setter Property="ShowInterval" Value="True" />
<Setter Property="Margin" Value="0" />
<Setter Property="Padding" Value="0" />
<Setter Property="ImageBoxTemplate" Value="{StaticResource MyImageBox}" />
</Style>
<DataTemplate x:Key="TooltipTemplate">
<dxlc:LayoutControl IsHitTestVisible="False" Orientation="Vertical" Padding="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.Column="0" Margin="0,0,3,0" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipTimeVisibility}">
<TextBlock Text="{Binding Path=Appointment.Start, StringFormat={}{0:HH:mm}}" />
<TextBlock Text=" - " />
<TextBlock Text="{Binding Path=Appointment.End, StringFormat={}{0:HH:mm}}" />
<TextBlock Text=" Uhr" Margin="0,0,4,0" />
</StackPanel>
<TextBlock Grid.Column="1" Text="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTip}" TextWrapping="Wrap" MaxWidth="{Binding ElementName=Scheduler, Path=ActualWidth}" />
</Grid>
<Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Height="1" Background="DimGray" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipTrennstrichVisibility}" />
<TextBlock Grid.Row="2" Grid.Column="0" Margin="0,0,3,0" Text="Ressourcen:" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipResourcesVisibility}" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=Appointment.CustomFields[VMForCustomField].ResourcesToolTip}" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipResourcesVisibility}" />
<TextBlock Grid.Row="3" Grid.Column="0" Margin="0,0,3,0" Text="{markup:Translate Mitarbeiter:}" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipEmployeesVisibility}" />
<ListView Margin="-6,-3,0,0" Grid.Row="3" Background="Transparent" BorderThickness="0" ItemsSource="{Binding Path=Appointment.CustomFields[VMForCustomField].EmployeeList}" Grid.Column="1" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipEmployeesVisibility}" Name="ToolTipEmployeeList">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}"
MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="{Binding Converter={StaticResource EmployeeListConfirmationToolTipConverter}}" BorderThickness="1" BorderBrush="DimGray" Width="5" Margin="0,0,3,0" Visibility="{Binding Path=DataContext.Appointment.CustomFields[VMForCustomField].ToolTipZusageVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}" />
<TextBlock Grid.Column="1" Foreground="DimGray" Text="{Binding Converter={StaticResource EmployeeListConfirmationToolTipConverter}, ConverterParameter=EmployeeName}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<TextBlock Margin="0,0,3,0" Grid.Row="4" Grid.Column="0" Text="{markup:Translate Klienten:}" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipCustomersVisibility}" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding Path=Appointment.CustomFields[VMForCustomField].CustomersToolTip}"
Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].ToolTipCustomersVisibility}" />
<Separator Grid.Row="5" Grid.ColumnSpan="2" Grid.Column="0" Height="1" Background="DimGray" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock Margin="0,0,3,0" Grid.Row="6" Grid.Column="0" Text="Angelegt von:" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock Margin="0,0,3,0" Grid.Row="6" Grid.Column="1" Text="{Binding Path=Appointment.CustomFields[VMForCustomField].Originator}" Visibility="{Binding Path=Appointment.CustomFields[VMForCustomField].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
</Grid>
</dxlc:LayoutControl>
</DataTemplate>
</ResourceDictionary>
</localView:BeWoView.Resources>
<Grid x:Name="RootGrid" Grid.IsSharedSizeScope="True" d:DataContext="{d:DesignInstance viewModel:SchedulingAppointmentListVM}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" x:Name="TopBarGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="0" VerticalAlignment="Bottom" MinWidth="239">
<StackPanel.Width>
<MultiBinding Converter="{StaticResource WidthAdditionMultiConverter}">
<Binding ElementName="AuswahlGrid" Path="ActualWidth" />
<Binding ElementName="LeftExpanderButton" Path="ActualWidth" />
</MultiBinding>
</StackPanel.Width>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Tagesansicht" Click="DayViewButton_OnClick">
<Image Source="../../Ressources/Icons/Calendar1Day24.png"></Image>
</Button>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Arbeitswoche anzeigen" Click="WorkWeekButton_OnClick">
<Image Source="../../Ressources/Icons/Calendar5Day24.png"></Image>
</Button>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Volle Woche anzeigen" Click="WeekButton_OnClick">
<Image Source="../../Ressources/Icons/Calendar7Day24.png"></Image>
</Button>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Monat anzeigen" Click="MonthButton_OnClick">
<Image Source="../../Ressources/Icons/Calendar31Day24.png"></Image>
</Button>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Zeitleiste anzeigen" Click="TimelineButton_OnClick">
<Image Source="../../Ressources/Icons/History24.png"></Image>
</Button>
<Button Margin="0,1,1,1" Height="24" Width="24" ToolTip="Termine löschen"
x:Name="DeleteAppointmentsButton" Click="DeleteAppointmentsInIntervalButton_OnClick"
Visibility="{Binding DeleteInInvervalButtonVisibility, UpdateSourceTrigger=PropertyChanged}">
<Image Source="../../Ressources/Icons/Delete24.png"></Image>
</Button>
<StackPanel x:Name="DayViewOptions" Orientation="Horizontal"
Visibility="{Binding ElementName=SchedulerControl, Path=ActiveView.Type, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DayViewDayCountVisibilityConverter}, ConverterParameter=DayCount}">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit MinValue="1" MaxValue="100" VerticalAlignment="Center"
x:Name="SpinEditDayViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False"
LostFocus="SpinEditDayViewDayCount_OnLostFocus" EditValueChanged="SpinEditDayViewDayCount_EditValueChanged" />
</StackPanel>
<StackPanel x:Name="TimelineViewOptions" Orientation="Horizontal"
Visibility="{Binding ElementName=SchedulerControl, Path=ActiveView.Type, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource DayViewDayCountVisibilityConverter}, ConverterParameter=IntervalCount}">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit MinValue="1" MaxValue="100" VerticalAlignment="Center"
x:Name="SpinEditTimelineViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False"
LostFocus="SpinEditTimelineViewDayCount_OnLostFocus" EditValueChanged="SpinEditTimelineViewDayCount_EditValueChanged" />
</StackPanel>
<Button Click="ReloadButton_OnClick" Margin="5,1,1,1" ToolTip="Kalender aktualisieren" Width="24" Height="24">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image x:Name="imgDisabled" Source="..\..\Ressources\Icons\SymbolRefresh32Disabled.png" />
<Image x:Name="imgEnabled" Source="..\..\Ressources\Icons\SymbolRefresh32.png" Opacity="0" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Opacity" TargetName="imgEnabled" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
<Button Click="ExportButton_OnClick" Margin="5,1,1,1" ToolTip="Exportieren" Width="24" Height="24" Visibility="Collapsed"/>
</StackPanel>
<Grid Grid.Column="2" Grid.Row="0" Margin="6,0,0,0" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="0" Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Content="{markup:Translate Mitarbeiterfarben}"
x:Name="MitarbeiterfarbenEinAusCheckBox"
IsChecked="{Binding Path=IsEmployeeBrushVisible}" />
<CheckBox Grid.Column="1" Content="Abwesenheiten" Margin="10,0,0,0" x:Name="AbwesenheitenEinAusCheckBox" Checked="AbwesenheitenEinAusCheckBox_OnChecked"
Unchecked="AbwesenheitenEinAusCheckBox_OnChecked"
IsChecked="{Binding Path=IsAbsenceTimeVisible, Mode=TwoWay}" />
<CheckBox Grid.Column="2" VerticalAlignment="Center" Margin="10,0,0,0" Content="Aufgaben" x:Name="ShowTasksCheckBox" IsChecked="{Binding Path=IsTasksVisible, Mode=TwoWay}" Click="ShowTasksCheckBox_OnClick" />
<TextBlock IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,0,0,0">
<Hyperlink RequestNavigate="ShowAppointmentRequests" NavigateUri="#" IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}">
<TextBlock Text="{Binding Requests, UpdateSourceTrigger=PropertyChanged}" />
</Hyperlink>
</TextBlock>
<CheckBox Grid.Column="4" IsChecked="{Binding OnlyPrivateAppointments, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Nur private Termine anzeigen" x:Name="ShowPrivateAppointmentsCheckBox" Click="ShowPrivateAppointmentsCheckBox_OnClick" />
</Grid>
<Border Grid.Row="0" Grid.Column="3" Width="{Binding ElementName=RightExpanderButton, Path=ActualWidth}" />
<Border Grid.Row="0" Grid.Column="4" Width="{Binding ElementName=DateNavigator, Path=ActualWidth}">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink NavigateUri="#" RequestNavigate="PrintCalendar">
<TextBlock>Drucken</TextBlock>
</Hyperlink>
</TextBlock>
</Border>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="A" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="A" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" x:Name="ObjectSelectionGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- ToDo: Kann man weder Mitarbeiter, Klienten und Ressourcen sehen, "Nur meine Termine anzeigen", das AuswahlGrid, und den Togglebutton verschicken -->
<CheckBox x:Name="ZeigeNurMeineTermineCheckBox" Grid.Row="0" Grid.Column="0" Content="Nur meine Termine anzeigen" Margin="3, 3, 3, 3" IsChecked="{Binding Path=ZeigeNurMeineTermine, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Checked="NurMeineTermineEinAusCheckBox_OnChecked" Unchecked="NurMeineTermineEinAusCheckBox_OnChecked" />
<UniformGrid Grid.Column="0" x:Name="AuswahlGrid" Rows="2" Columns="1" Width="270" Grid.Row="1">
<TabControl SelectionChanged="Selector_OnSelectionChanged" SelectedIndex="{Binding SelectedTabItemIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" x:Name="TabControl" Visibility="{Binding SelectionControlVisibility, UpdateSourceTrigger=PropertyChanged}">
<!-- #region Mitarbeiterauswahl -->
<TabItem Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Header="{markup:Translate Mitarbeiter}" Style="{StaticResource MitarbeiterTabItemStyle}" x:Name="MitarbeiterTabItem">
<Grid x:Name="MitarbeiterTabGrid" Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Foreground="#FFD2D2D2" Grid.Column="0" Content="Alle auswählen" Margin="3" x:Name="AlleMitarbeiterCB" Click="AllEmployeesCheckBox_OnClick" />
<ToggleButton Margin="3" Grid.Row="0" Grid.Column="1" Height="17" Width="36" Style="{StaticResource LupenToggleButtonStyle}" x:Name="EmployeeSearchToggleButton" Checked="EmployeeSearchToggleButton_OnCheckedUnchecked" Unchecked="EmployeeSearchToggleButton_OnCheckedUnchecked" />
<Grid x:Name="MitarbeiterSuchGrid" Margin="0,1,0,3" Grid.Column="0" Grid.ColumnSpan="2" Background="Black" Grid.Row="1" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Content="Suche:" Grid.Column="0" Foreground="White" />
<TextBox x:Name="MitarbeiterSuchTextBox" Grid.Column="1" TextChanged="TextBoxEmployees_OnTextChanged" Margin="3" VerticalContentAlignment="Center" />
<Button Grid.Column="2" Style="{DynamicResource CloseButtonStyle}" Width="19" Height="19" Margin="0,3,3,3" ToolTip="Suchfeld leeren" Click="ClearEmployeeSearchButton_OnClick" />
</Grid>
<ListView Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Margin="0" ItemsSource="{Binding Path=FilteredEmployees, UpdateSourceTrigger=PropertyChanged}" Background="Transparent" BorderThickness="0">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border CornerRadius="5" MinHeight="25" Background="Transparent" />
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="25" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="{Binding Path=Employee.DetailDescription}"
Click="ListItem_OnClick" Checked="EmployeeListViewCheckBox_OnChecked" Unchecked="EmployeeListViewCheckBox_OnChecked"
IsChecked="{Binding Path=(schedulingUtils:ListItemHelper.IsChecked), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="#FFD2D2D2"/>
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=(schedulingUtils:ListItemHelper.IsChecked)}" Value="False" />
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
<Border Width="15" Height="15" Grid.Column="1" Background="{Binding Path=Employee.FilterableBrush}" CornerRadius="3" />
<Button x:Name="btn_showEmployeeInformation" Width="15" Height="15" Grid.Column="2" Margin="5 0 5 0"
Click="EmployeeInformationButton_OnClick" FontFamily="Microsoft Sans Serif" Content="i"
Visibility="{Binding Converter={StaticResource InfoButtonVisibilityConverter}}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#70000000" Offset="0" />
<GradientStop Color="#BB000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#70000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</TabItem>
<!-- #endregion Mitarbeiterauswahl -->
<!-- #region Klientenauswahl -->
<TabItem Visibility="{Binding CustomerControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Header="{markup:Translate Klienten}" Style="{StaticResource KlientenTabItemStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Foreground="#FFD2D2D2" Grid.Row="0" Grid.Column="0" Content="Alle auswählen" Margin="3" x:Name="SelectAllCustomersCheckBox" Click="AllCustomersCheckBox_Checked" HorizontalAlignment="Left" HorizontalContentAlignment="Center" />
<CheckBox Foreground="#FFD2D2D2" Grid.Row="0" Grid.Column="1" Content="{markup:Translate Nur meine Klienten}" Click="OnlyMyCustomersCheckBox_Click" Margin="3" HorizontalAlignment="Right" IsThreeState="False" HorizontalContentAlignment="Center" />
<ToggleButton Margin="3" Grid.Row="0" Grid.Column="2" Height="17" Width="36" Style="{StaticResource LupenToggleButtonStyle}" x:Name="CustomerSearchToggleButton" Checked="CustomerSearchToggleButton_OnCheckedUnchecked" Unchecked="CustomerSearchToggleButton_OnCheckedUnchecked" />
<Grid x:Name="KlientenSuchGrid" Margin="0,1,0,3" Grid.Column="0" Grid.ColumnSpan="3" Background="Black" Grid.Row="1" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Content="Suche:" Grid.Column="0" Foreground="White" />
<TextBox Grid.Column="1" TextChanged="TextBoxCustomers_OnTextChanged" Margin="3" VerticalContentAlignment="Center" x:Name="KlientenSuchTextBox" />
<Button Grid.Column="2" Style="{DynamicResource CloseButtonStyle}" Width="19" Height="19" Margin="0,3,3,3" ToolTip="Suchfeld leeren" Click="ClearCustomerSearchButton_OnClick" />
</Grid>
</Grid>
<ListView Grid.Row="1" ItemsSource="{Binding Path=FilteredCustomers, UpdateSourceTrigger=PropertyChanged}" Margin="0" Background="Transparent" BorderThickness="0">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border CornerRadius="5" MinHeight="25" Background="Transparent" />
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="25" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Tag="{Binding}" Content="{Binding Path=DetailDescription}" Click="ListItem_OnClick" VerticalAlignment="Center" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox.IsChecked>
<MultiBinding Mode="OneWay" Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Klienten">
<Binding Path="CustomerOid" Mode="OneWay" />
<Binding Path="DataContext" Mode="OneWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type localView:BeWoView}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<Button x:Name="btn_showCustomerInformation" Width="15" Height="15" Grid.Column="1" Margin="5 0 5 0" Click="CustomerInformationButton_OnClick" Visibility="{Binding Converter={StaticResource InfoButtonVisibilityConverter}}" FontFamily="Microsoft Sans Serif" Content="i"/>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
</TabItem>
<!-- #endregion Klientenauswahl -->
<!-- #region Ressourcenauswahl -->
<TabItem Visibility="{Binding ResourceControlsVisibility, UpdateSourceTrigger=PropertyChanged}" x:Name="RessourcenTabItem" Header="Ressourcen" Style="{StaticResource RessourcenTabItemStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Grid.Row="0" Content="Alle auswählen" Margin="3" x:Name="SelectAllResourcesCheckBox" Click="AllResourcesCheckBox_OnClick" />
<TreeView Grid.Row="1" BorderThickness="0" ItemsSource="{Binding Path=Categories2Resources, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Background="Transparent" ItemContainerStyle="{StaticResource ResourceTreeViewStyle}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
<Border BorderBrush="{x:Null}" Height="23">
<TextBlock FontWeight="Bold" Text="{Binding Path=Key.ResourceCategory}" VerticalAlignment="Center" />
</Border>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<Border BorderThickness="0 0 0 0" BorderBrush="{Binding DataContract.Color}"
Tag="{Binding}"
Margin="1" Height="23">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<CheckBox Click="ListItem_OnClick" Checked="ResourceTreeViewCheckBox_OnChecked" Unchecked="ResourceTreeViewCheckBox_OnChecked"
IsChecked="{Binding Path=(schedulingUtils:TreeViewItemHelper.IsChecked), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=(schedulingUtils:TreeViewItemHelper.IsChecked)}" Value="False" />
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
<Rectangle VerticalAlignment="Center" Stroke="Black" StrokeThickness="1" Margin="1,0,1,0" Height="10" Width="10"
Fill="{Binding DataContract.Color, Converter={StaticResource StringBrushConverter}}" />
<TextBlock VerticalAlignment="Center" Text="{Binding Path=DataContract.Name}" />
</StackPanel>
</Border>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</TabItem>
<!-- #endregion Ressourcenauswahl -->
</TabControl>
<!--#region Liste aller ausgewählten Mitarbeiter, Klienten, und Ressourcen -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="Ausgewählte Elemente" Style="{StaticResource ObjectEditGroupBox}" Grid.Row="0" Margin="0,3,0,0">
<ListBox Background="Transparent" ItemsSource="{Binding Path=SelectedItems}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}">
<ScrollViewer Focusable="False" Padding="{TemplateBinding Padding}" HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
</GroupBox>
<Button Grid.Row="1" Content="Auswahl aufheben" Height="23" HorizontalAlignment="Stretch" Click="AuswahlAufhebenClick" Margin="30,0,5,0" />
</Grid>
<!--#endregion /Liste aller ausgewählten Mitarbeiter, Klienten, und Ressourcen -->
</UniformGrid>
</Grid>
<!--#region Filter oben links -->
<StackPanel x:Name="FilterCheckBoxenStackPanel" Orientation="Vertical" Grid.Column="1" HorizontalAlignment="Center">
<CheckBox x:Name="MitarbeiterEbenenCheckBox" Visibility="{Binding EmployeeControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Content="{markup:Translate Nur Mitarbeiter}" SnapsToDevicePixels="True" Margin="0,3,0,3" Checked="ListItem_OnClick" Unchecked="ListItem_OnClick" IsThreeState="False">
<CheckBox.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="270" />
</CheckBox.LayoutTransform>
</CheckBox>
<CheckBox x:Name="KlientenEbenenCheckBox" Visibility="{Binding CustomerControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Content="{markup:Translate Nur Klienten}" SnapsToDevicePixels="True" Margin="0,0,0,3" Checked="ListItem_OnClick" Unchecked="ListItem_OnClick" IsThreeState="False">
<CheckBox.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="270" />
</CheckBox.LayoutTransform>
</CheckBox>
<CheckBox x:Name="RessourcenEbenenCheckBox" Visibility="{Binding ResourceControlsVisibility, UpdateSourceTrigger=PropertyChanged}" Content="Nur Ressourcen" SnapsToDevicePixels="True" Margin="0,0,0,3" Checked="ListItem_OnClick" Unchecked="ListItem_OnClick" IsThreeState="False">
<CheckBox.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="270" />
</CheckBox.LayoutTransform>
</CheckBox>
</StackPanel>
<!--#endregion Filter oben links -->
<ToggleButton Grid.Column="1" Style="{StaticResource VerticalExpanderLookAlikeToggleBotton}" Width="23" Height="23" Margin="3" Click="LeftExpanderClick" x:Name="LeftExpanderButton" />
<!-- SchedulerControl -->
<dxsch:SchedulerControl x:Name="SchedulerControl"
Grid.Column="2"
FirstDayOfWeek="Monday"
dx:ThemeManager.ThemeName="Office2010Black"
ActiveViewType="WorkWeekView"
ToolTipMode="ToolTip"
SelectedAppointmentsSource="{Binding SelectedAppointments}"
SelectedInterval="{Binding Interval, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
EditOccurrenceWindowShowing="SchedulerControl_OnEditOccurrenceWindowShowing"
AppointmentWindowShowing="SchedulerControl_OnAppointmentWindowShowing"
CustomAllowAppointmentCreate="SchedulerControl_CustomAllowAppointmentCreate"
CustomAllowAppointmentEdit="SchedulerControl_CustomAllowAppointmentEdit"
CustomAllowAppointmentDrag="SchedulerControl_CustomAllowAppointmentDrag"
CustomAllowAppointmentResize="SchedulerControl_CustomAllowAppointmentResize"
CustomAllowAppointmentDragBetweenResources="SchedulerControl_CustomAllowAppointmentDragBetweenResources"
RecurrenceWindowShowing="SchedulerControl_OnRecurrenceWindowShowing"
DropAppointment="SchedulerControl_OnDropAppointment"
AppointmentRemoved="SchedulerControl_OnAppointmentRemoved"
CommitAppointmentResize="SchedulerControl_OnCommitAppointmentResize"
ToolTipContentTemplate="{StaticResource TooltipTemplate}"
PopupMenuShowing="SchedulerControl_OnPopupMenuShowing"
AppointmentAdded="SchedulerControl_OnAppointmentAdded"
PastingFromClipboard="SchedulerControl_OnPastingFromClipboard"
AppointmentRemoving="SchedulerControl_OnAppointmentRemoving"
>
<dxsch:SchedulerControl.OptionsContextMenu>
<dxsch:OptionsContextMenu>
<dxsch:OptionsContextMenu.CellContextMenuActions>
<!--
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_AppointmentDrop_Actions_CopyAppointmentsOnDrop}"/>
-->
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewRecurringEvent}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewAllDayEvent}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_Paste}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Cell_Actions_NewRecurringAppointment}" />
<dxb:InsertAction>
<dxb:BarButtonItem Content="Verfügbare Mitarbeiter anzeigen" ItemClick="EmployeeAvailabilityBarItem_OnItemClick" />
</dxb:InsertAction>
</dxsch:OptionsContextMenu.CellContextMenuActions>
<dxsch:OptionsContextMenu.AppointmentContextMenuActions>
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Options_ShowTimeAs}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Options_LabelAs}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Cut}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Copy}" />
<dxb:RemoveAction ElementName="{x:Static Member=dxsch:DefaultBarItemNames.ContextMenu_Items_Appointment_Actions_Paste}" />
<dxb:InsertAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorTop" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Zusagen" ItemClick="ConfirmParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Mit Vorbehalt zusagen" ItemClick="AcceptWithReservationParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Absagen" ItemClick="DeclineParticipationBarButtonItem_OnClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorBottom" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="{markup:Translate In Zeiterfassung übertragen}" ItemClick="ZeiterfassungButtonItem_OnItemClick" />
</dxb:InsertAction>
<dxb:InsertAction>
<dxb:BarButtonItem Content="Verfügbare Mitarbeiter anzeigen" ItemClick="EmployeeAvailabilityBarItem_OnItemClick" />
</dxb:InsertAction>
</dxsch:OptionsContextMenu.AppointmentContextMenuActions>
</dxsch:OptionsContextMenu>
</dxsch:SchedulerControl.OptionsContextMenu>
<dxsch:SchedulerControl.OptionsWindows>
<dxsch:OptionsWindows AppointmentWindowType="{x:Type local:AppointmentEditView}" RecurrenceWindowType="{x:Type local:AppointmentRecurrenceEditView}" />
</dxsch:SchedulerControl.OptionsWindows>
<dxsch:SchedulerControl.DataSource>
<dxsch:DataSource AppointmentsSource="{Binding VMList}">
<dxsch:DataSource.AppointmentMappings>
<dxsch:AppointmentMappings
Id="Id"
LabelId="LabelKey"
Start="Start"
End="End"
Subject="Subject"
Description="Description"
AllDay="AllDay"
RecurrenceInfo="RecurrenceInfo"
Location="Location"
Type="EventType"
>
<dxsch:CustomFieldMapping Mapping="VMForCustomField" Name="VMForCustomField" />
<dxsch:CustomFieldMapping Mapping="EmployeeList" Name="EmployeeList" />
<dxsch:CustomFieldMapping Mapping="CustomerList" Name="CustomerList" />
<dxsch:CustomFieldMapping Mapping="ResourceList" Name="ResourceList" />
<dxsch:CustomFieldMapping Mapping="Originator" Name="Originator" />
<dxsch:CustomFieldMapping Mapping="SupportConceptList" Name="SupportConceptList" />
<dxsch:CustomFieldMapping Mapping="IsPrivate" Name="IsPrivate" />
<dxsch:CustomFieldMapping Mapping="IsAbsenceTime" Name="IsAbsenceTime" />
<dxsch:CustomFieldMapping Mapping="IsTask" Name="IsTask" />
<dxsch:CustomFieldMapping Mapping="TaskDescription" Name="TaskDescription" />
<dxsch:CustomFieldMapping Mapping="CompletedNotice" Name="CompletedNotice" />
<dxsch:CustomFieldMapping Mapping="CompletedDate" Name="CompletedDate" />
<dxsch:CustomFieldMapping Mapping="DueDate" Name="DueDate" />
<dxsch:CustomFieldMapping Mapping="DueTime" Name="DueTime" />
<dxsch:CustomFieldMapping Mapping="AppointmentColors" Name="AppointmentColors" />
<dxsch:CustomFieldMapping Mapping="BackgroundColor" Name="BackgroundColor" />
<dxsch:CustomFieldMapping Mapping="ForegroundColor" Name="ForegroundColor" />
<dxsch:CustomFieldMapping Mapping="CanBeEdited" Name="CanBeEdited" />
<dxsch:CustomFieldMapping Mapping="ToolTip" Name="ToolTip" />
<dxsch:CustomFieldMapping Mapping="ToolTipTimeVisibility" Name="ToolTipTimeVisibility" />
<dxsch:CustomFieldMapping Mapping="ToolTipResourcesVisibility" Name="ToolTipResourcesVisibility" />
<dxsch:CustomFieldMapping Mapping="ToolTipEmployeesVisibility" Name="ToolTipEmployeesVisibility" />
<dxsch:CustomFieldMapping Mapping="ToolTipCustomersVisibility" Name="ToolTipCustomersVisibility" />
<dxsch:CustomFieldMapping Mapping="ToolTipTrennstrichVisibility" Name="ToolTipTrennstrichVisibility" />
<dxsch:CustomFieldMapping Mapping="ToolTipZusageVisibility" Name="ToolTipZusageVisibility" />
<dxsch:CustomFieldMapping Mapping="ResourcesToolTip" Name="ResourcesToolTip" />
<dxsch:CustomFieldMapping Mapping="EmployeesToolTip" Name="EmployeesToolTip" />
<dxsch:CustomFieldMapping Mapping="CustomersToolTip" Name="CustomersToolTip" />
</dxsch:AppointmentMappings>
</dxsch:DataSource.AppointmentMappings>
</dxsch:DataSource>
</dxsch:SchedulerControl.DataSource>
<dxsch:DayView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ShowAllDayArea="True"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
ShowAllDayAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
<dxsch:WeekView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ShowAllDayArea="True"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
ShowAllDayAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
<dxsch:WorkWeekView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ShowAllDayArea="True"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
ShowAllDayAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource VerticalAppointmentControl.ContentTemplate}"
AllDayAppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
<dxsch:MonthView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ShowAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
<dxsch:AgendaView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ShowAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
<dxsch:TimelineView ShowAppointmentStatus="False"
AppointmentStyle="{StaticResource AppointmentStyle}"
ResourcesPerPage="0"
ViewMode="Legacy"
ShowAppointmentRecurrenceImage="True"
AppointmentContentTemplate="{StaticResource HorizontalAppointmentControl.ContentTemplate}" />
</dxsch:SchedulerControl>
<ToggleButton Grid.Column="3" Style="{StaticResource VerticalRightExpanderLookAlikeToggleBotton}" Width="23" Height="23" Margin="3" Click="RightExpanderClick" x:Name="RightExpanderButton" />
<dxe:DateNavigator x:Name="DateNavigator" Grid.Column="4" HighlightSpecialDates="True" VerticalAlignment="Stretch" dx:ThemeManager.ThemeName="Office2010Black" SelectedDatesChanged="DateNavigator_OnSelectedDatesChanged" FirstDayOfWeek="Monday" CalendarView="Month">
<dxe:DateNavigator.StyleSettings>
<dxsch:SchedulerDateNavigatorStyleSettings Scheduler="{Binding ElementName=SchedulerControl}" />
</dxe:DateNavigator.StyleSettings>
</dxe:DateNavigator>
</Grid>
<Border Grid.Row="0" Grid.RowSpan="2" x:Name="PopupContent" />
<Popup Grid.Row="0" StaysOpen="True" Placement="MousePoint" Width="290" Height="80" Closed="popup_Closed" Opened="popup_Opened" x:Name="DeleteAppointmentsPopup">
<Grid Background="{StaticResource ControlBackground}" Margin="2,2,2,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Termine löschen bis: " Height="24" Margin="0,0,0,0" />
<dxe:DateEdit Grid.Column="1" Grid.Row="0" MaskType="DateTimeAdvancingCaret" Width="150" Height="24" VerticalAlignment="Center" Margin="0,0,0,0" x:Name="DeleteForGoodIntervalEndDateEdit" />
<StackPanel Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0">
<Button Content="OK" Click="DeleteAppointmentsForGood_Click" />
<Button Content="Abbrechen" Margin="3,0,0,0" Click="AbortDeletingAppointments_Click" />
</StackPanel>
</Grid>
</Popup>
</Grid>
</localView:BeWoView>